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 -std=c++14 -DTEST5 6// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++14 -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 10// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST10 -ffreestanding 11 12#if TEST1 13int main; // expected-error{{main cannot be declared as global variable}} 14 15#elif TEST2 16// expected-no-diagnostics 17int f () { 18 int main; 19 return main; 20} 21 22#elif TEST3 23// expected-no-diagnostics 24void x(int main) {}; 25int y(int main); 26 27#elif TEST4 28// expected-no-diagnostics 29class A { 30 static int main; 31}; 32 33#elif TEST5 34// expected-no-diagnostics 35template<class T> constexpr T main; 36 37#elif TEST6 38extern template<class T> constexpr T main; //expected-error{{expected unqualified-id}} 39 40#elif TEST7 41// expected-no-diagnostics 42namespace foo { 43 int main; 44} 45 46#elif TEST8 47void z(void) 48{ 49 extern int main; // expected-error{{main cannot be declared as global variable}} 50} 51 52#elif TEST9 53// expected-no-diagnostics 54int q(void) 55{ 56 static int main; 57 return main; 58} 59 60#elif TEST10 61// expected-no-diagnostics 62int main; 63 64#else 65#error Unknown Test 66#endif 67