// { dg-do assemble } | |
template<int T> | |
struct A { | |
char *a; | |
A (const char* x) | |
{ | |
a = (char*) x; | |
} | |
}; | |
template<int U, int V, class T> | |
struct B { | |
T a[V-U+1]; | |
friend A<V-U+1> f (B const &x) | |
{ | |
return A<V-U+1> ((char*) x.a); | |
} | |
}; | |
const int a = 8; | |
typedef B<1,a,int> C; | |
struct D { | |
C x; | |
}; |