// RUN: %clang_cc1 -fsyntax-only -verify %s // expected-no-diagnostics extern int array[1]; template class C { enum { D }; public: template void foo1() { extern int array[((int)C::k > (int)D) ? 1 : -1]; } }; template<> class C { public: const static int k = 2; }; void foo2() { C c; c.foo1(); } template void foo3() { extern int array[n ? 1 : -1]; } void foo4() { foo3<5>(); } namespace NS { int f() { extern int arr[3]; { extern int arr[]; } return 0; } template void g() { extern int arr[3]; extern T arr; } template void g(); }