blob: af0a2770291cf495fabc7e5e87cbb0c2b10941b0 [file] [log] [blame]
Akira Hatanaka3e34cfe2016-09-01 01:03:21 +00001// 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}
Richard Smith1b8125b2020-06-16 19:27:54 -070034
35namespace 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[]>();
39}