1*deebf6efSDouglas Gregor // RUN: clang-cc -fsyntax-only -pedantic -verify %s
2ad2956c2SDouglas Gregor 
3ad2956c2SDouglas Gregor template<int N>
4ad2956c2SDouglas Gregor void f() {
5ad2956c2SDouglas Gregor   int a[] = { 1, 2, 3, N };
6ad2956c2SDouglas Gregor   unsigned numAs = sizeof(a) / sizeof(int);
7ad2956c2SDouglas Gregor }
8ad2956c2SDouglas Gregor 
9ad2956c2SDouglas Gregor template void f<17>();
10ad2956c2SDouglas Gregor 
11*deebf6efSDouglas Gregor 
12*deebf6efSDouglas Gregor template<int N>
13*deebf6efSDouglas Gregor void f1() {
14*deebf6efSDouglas Gregor   int a0[] = {}; // expected-warning{{zero}}
15*deebf6efSDouglas Gregor   int a1[] = { 1, 2, 3, N };
16*deebf6efSDouglas Gregor   int a3[sizeof(a1)/sizeof(int) != 4? 1 : -1]; // expected-error{{negative}}
17*deebf6efSDouglas Gregor }
18