llvm-project/clang/test/SemaTemplate/dependent-sized_array.cpp
Richard Smith de63d36fb2 PR13788: Don't perform checks on the initializer of a dependently-typed
variable. Previously we didn't notice the type was dependent if the only
dependence came from an array bound.

Patch by Brian Brooks!

llvm-svn: 167642
2012-11-09 23:03:14 +00:00

29 lines
506 B
C++

// RUN: %clang_cc1 -fsyntax-only -pedantic -verify %s
template<int N>
void f() {
int a[] = { 1, 2, 3, N };
unsigned numAs = sizeof(a) / sizeof(int);
}
template void f<17>();
template<int N>
void f1() {
int a0[] = {}; // expected-warning{{zero}}
int a1[] = { 1, 2, 3, N };
int a3[sizeof(a1)/sizeof(int) != 4? 1 : -1]; // expected-error{{negative}}
}
namespace PR13788 {
template <unsigned __N>
struct S {
int V;
};
template <int N>
void foo() {
S<0> arr[N] = {{ 4 }};
}
}