[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / SemaTemplate / array-redeclaration.cpp
blobaf0a2770291cf495fabc7e5e87cbb0c2b10941b0
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
4 extern int array[1];
6 template <typename>
7 class C {
8 enum { D };
9 public:
10 template <typename A> void foo1() {
11 extern int array[((int)C<A>::k > (int)D) ? 1 : -1];
15 template<>
16 class C<int> {
17 public:
18 const static int k = 2;
21 void foo2() {
22 C<char> c;
23 c.foo1<int>();
26 template<int n>
27 void foo3() {
28 extern int array[n ? 1 : -1];
31 void foo4() {
32 foo3<5>();
35 namespace NS {
36 int f() { extern int arr[3]; { extern int arr[]; } return 0; }
37 template<typename T> void g() { extern int arr[3]; extern T arr; }
38 template void g<int[]>();