1 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST1 |
2 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST2 |
3 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST3 |
4 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST4 |
5 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST5 |
6 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST6 |
7 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST7 |
8 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST8 |
9 | // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST9 -ffreestanding |
10 | |
11 | #if TEST1 |
12 | int main; // expected-warning{{variable named 'main' with external linkage has undefined behavior}} |
13 | |
14 | #elif TEST2 |
15 | extern int main; // expected-warning{{variable named 'main' with external linkage has undefined behavior}} |
16 | |
17 | #elif TEST3 |
18 | // expected-no-diagnostics |
19 | void x() { |
20 | static int main; |
21 | } |
22 | |
23 | #elif TEST4 |
24 | void x() { |
25 | extern int main; // expected-warning{{variable named 'main' with external linkage has undefined behavior}} |
26 | } |
27 | |
28 | #elif TEST5 |
29 | // expected-no-diagnostics |
30 | void x() { |
31 | int main; |
32 | } |
33 | |
34 | #elif TEST6 |
35 | // expected-no-diagnostics |
36 | static int main; |
37 | |
38 | #elif TEST7 |
39 | // expected-no-diagnostics |
40 | void x() { |
41 | auto int main; |
42 | } |
43 | |
44 | #elif TEST8 |
45 | // expected-no-diagnostics |
46 | void x() { |
47 | register int main; |
48 | } |
49 | |
50 | #elif TEST9 |
51 | // expected-no-diagnostics |
52 | int main; |
53 | |
54 | #else |
55 | #error Unknown Test |
56 | #endif |
57 | |