1*15b66535SRichard Trieu // RUN: %clang_cc1 -fsyntax-only -verify %s 2*15b66535SRichard Trieu 3*15b66535SRichard Trieu namespace { 4*15b66535SRichard Trieu template <bool, typename> Foo()5*15b66535SRichard Trieuvoid Foo() {} 6*15b66535SRichard Trieu 7*15b66535SRichard Trieu template <int size> Foo()8*15b66535SRichard Trieuvoid Foo() { 9*15b66535SRichard Trieu int arr[size]; 10*15b66535SRichard Trieu // expected-error@-1 {{'arr' declared as an array with a negative size}} 11*15b66535SRichard Trieu } 12*15b66535SRichard Trieu } 13*15b66535SRichard Trieu test_foo()14*15b66535SRichard Trieuvoid test_foo() { 15*15b66535SRichard Trieu Foo<-1>(); 16*15b66535SRichard Trieu // expected-note@-1 {{in instantiation of function template specialization '(anonymous namespace)::Foo<-1>' requested here}} 17*15b66535SRichard Trieu } 18*15b66535SRichard Trieu 19*15b66535SRichard Trieu template <bool, typename> Bar()20*15b66535SRichard Trieuvoid Bar() {} 21*15b66535SRichard Trieu 22*15b66535SRichard Trieu template <int size> Bar()23*15b66535SRichard Trieuvoid Bar() { 24*15b66535SRichard Trieu int arr[size]; 25*15b66535SRichard Trieu // expected-error@-1 {{'arr' declared as an array with a negative size}} 26*15b66535SRichard Trieu } 27*15b66535SRichard Trieu test_bar()28*15b66535SRichard Trieuvoid test_bar() { 29*15b66535SRichard Trieu Bar<-1>(); 30*15b66535SRichard Trieu // expected-note@-1 {{in instantiation of function template specialization 'Bar<-1>' requested here}} 31*15b66535SRichard Trieu } 32*15b66535SRichard Trieu 33