1 // { dg-do assemble } 2 3 template<int T> 4 struct A { 5 char *a; AA6 A (const char* x) 7 { 8 a = (char*) x; 9 } 10 }; 11 12 template<int U, int V, class T> 13 struct B { 14 T a[V-U+1]; fB15 friend A<V-U+1> f (B const &x) 16 { 17 return A<V-U+1> ((char*) x.a); 18 } 19 }; 20 21 const int a = 8; 22 23 typedef B<1,a,int> C; 24 struct D { 25 C x; 26 }; 27