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