| // { 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; | |
| }; |