1 // { dg-do assemble  }
2 
f(int x)3 int f (int x)
4 {
5   extern void g (int i = f (x)); // { dg-error "" } default argument uses local
6 
7   g();
8 
9   return 0;
10 }
11 
12 int f (void);
13 
14 int h1 (int (*)(int) = f);
15 int h2 (int (*)(double) = f); // { dg-error "" } no matching f
16 
17 template <class T>
j(T t)18 int j (T t)
19 {
20   extern void k (int i = j (t)); // { dg-error "" } default argument uses local
21 
22   k ();
23 
24   return 0;
25 }
26 
27 template int j (double);
28 
29