1232950Stheraven// { dg-do assemble } 2232950Stheraven 3232950Stheravenextern "C" int printf(const char *, ...); 4232950Stheraventemplate <class T> struct A { 5232950Stheraven typedef typename T::X B; // { dg-error "" } not a class 6232950Stheraven A(double); 7232950Stheraven}; 8232950Stheraven 9232950Stheraventemplate <class T> void xxx(typename A<T>::B); 10232950Stheraven 11232950Stheraventemplate <class T> struct B { 12232950Stheraven friend void xxx<T>(T); // { dg-error "" } does not match any template 13232950Stheraven}; 14232950Stheraven 15232950Stheraventemplate struct B<double>; 16232950Stheraven