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