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