Clang Project

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