1*67e74705SXin Li // RUN: %clang_cc1 -std=c99 -E %s -o - | FileCheck --check-prefix=CHECK-NONE %s 2*67e74705SXin Li 3*67e74705SXin Li // RUN: %clang_cc1 -std=gnu89 -E %s -o - \ 4*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GNU-KEYWORDS %s 5*67e74705SXin Li // RUN: %clang_cc1 -std=c99 -fgnu-keywords -E %s -o - \ 6*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-GNU-KEYWORDS %s 7*67e74705SXin Li // RUN: %clang_cc1 -std=gnu89 -fno-gnu-keywords -E %s -o - \ 8*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-NONE %s 9*67e74705SXin Li 10*67e74705SXin Li // RUN: %clang_cc1 -std=c99 -fms-extensions -E %s -o - \ 11*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MS-KEYWORDS %s 12*67e74705SXin Li // RUN: %clang_cc1 -std=c99 -fdeclspec -E %s -o - \ 13*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-DECLSPEC-KEYWORD %s 14*67e74705SXin Li // RUN: %clang_cc1 -std=c99 -fms-extensions -fno-declspec -E %s -o - \ 15*67e74705SXin Li // RUN: | FileCheck --check-prefix=CHECK-MS-KEYWORDS-WITHOUT-DECLSPEC %s 16*67e74705SXin Li f()17*67e74705SXin Livoid f() { 18*67e74705SXin Li // CHECK-NONE: int asm 19*67e74705SXin Li // CHECK-GNU-KEYWORDS: asm ("ret" : :) 20*67e74705SXin Li #if __is_identifier(asm) 21*67e74705SXin Li int asm; 22*67e74705SXin Li #else 23*67e74705SXin Li asm ("ret" : :); 24*67e74705SXin Li #endif 25*67e74705SXin Li } 26*67e74705SXin Li 27*67e74705SXin Li // CHECK-NONE: no_ms_wchar 28*67e74705SXin Li // CHECK-MS-KEYWORDS: has_ms_wchar 29*67e74705SXin Li // CHECK-MS-KEYWORDS-WITHOUT-DECLSPEC: has_ms_wchar 30*67e74705SXin Li #if __is_identifier(__wchar_t) 31*67e74705SXin Li void no_ms_wchar(); 32*67e74705SXin Li #else 33*67e74705SXin Li void has_ms_wchar(); 34*67e74705SXin Li #endif 35*67e74705SXin Li 36*67e74705SXin Li // CHECK-NONE: no_declspec 37*67e74705SXin Li // CHECK-MS-KEYWORDS: has_declspec 38*67e74705SXin Li // CHECK-MS-KEYWORDS-WITHOUT-DECLSPEC: no_declspec 39*67e74705SXin Li // CHECK-DECLSPEC-KEYWORD: has_declspec 40*67e74705SXin Li #if __is_identifier(__declspec) 41*67e74705SXin Li void no_declspec(); 42*67e74705SXin Li #else 43*67e74705SXin Li void has_declspec(); 44*67e74705SXin Li #endif 45