// RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST1 // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST2 // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST3 // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST4 // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST5 // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST6 // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST7 // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST8 // RUN: %clang_cc1 -fsyntax-only -verify %s -DTEST9 -ffreestanding #if TEST1 int main; // expected-warning{{variable named 'main' with external linkage has undefined behavior}} #elif TEST2 extern int main; // expected-warning{{variable named 'main' with external linkage has undefined behavior}} #elif TEST3 // expected-no-diagnostics void x() { static int main; } #elif TEST4 void x() { extern int main; // expected-warning{{variable named 'main' with external linkage has undefined behavior}} } #elif TEST5 // expected-no-diagnostics void x() { int main; } #elif TEST6 // expected-no-diagnostics static int main; #elif TEST7 // expected-no-diagnostics void x() { auto int main; } #elif TEST8 // expected-no-diagnostics void x() { register int main; } #elif TEST9 // expected-no-diagnostics int main; #else #error Unknown Test #endif