1 // { dg-do assemble } 2 f(int x)3int 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)18int 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