1// { dg-do assemble } 2// Origin: Mark Mitchell <mark@codesourcery.com> 3 4template <int T> 5struct S { 6 struct X {}; 7 struct Y {}; 8 9 template <int U> 10 friend struct S<U>::X; 11 12 template <int U> 13 friend typename S<U>::Y; // { dg-error "" } typename as friend 14}; 15 16struct T { 17 template <int T> 18 friend struct S<T>::X; 19}; 20 21struct U { 22 template <int T> 23 friend typename S<T>::X; // { dg-error "" } typename as friend 24}; 25