1 // { dg-options "-fno-pretty-templates" }
2 
3 template <class T, int N=0, int X=1>
4 struct A
5 {
6   struct AN;
7 };
8 
foo(void)9 void foo(void)
10 {
11   A<void> a = 0;		// { dg-error "A<void, 0, 1>" }
12 }
13 
14 template <class T> T f(T);	    // { dg-message "int f<int>.int." }
15 template <class T> T f(T, int = 0); // { dg-message "" }
16 
17 template <class T>
18 struct B
19 {
20   typedef typename T::AN BN;
21 
22   BN f();			// { dg-message "AN" }
23   BN f(int = 0);		// { dg-message "" }
24 };
25 
main()26 int main()
27 {
28   f(1);				// { dg-error "" }
29   B<A<int> >().f();		// { dg-error "" }
30 }
31