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