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