1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
3 
4 extern int array[1];
5 
6 template <typename>
7 class C {
8   enum { D };
9 public:
foo1()10   template <typename A> void foo1() {
11     extern int array[((int)C<A>::k > (int)D) ? 1 : -1];
12   }
13 };
14 
15 template<>
16 class C<int> {
17 public:
18   const static int k = 2;
19 };
20 
foo2()21 void foo2() {
22   C<char> c;
23   c.foo1<int>();
24 }
25 
26 template<int n>
foo3()27 void foo3() {
28   extern int array[n ? 1 : -1];
29 }
30 
foo4()31 void foo4() {
32   foo3<5>();
33 }
34