// PR c++/69349 - template substitution error for flexible array members | |
// { dg-do compile } | |
template <class> | |
struct A; | |
template <class T> | |
struct A<T[]> { typedef int X; }; | |
template <class T> int foo (T&, typename A<T>::X = 0) { return 0; } | |
struct B { | |
int n, a[]; // { dg-error "10:ISO C\\+\\+ forbids flexible array member" } | |
}; | |
void bar (B *b) | |
{ | |
foo (b->a); | |
} |