// { dg-do assemble } int f (int x) { extern void g (int i = f (x)); // { dg-error "" } default argument uses local g(); return 0; } int f (void); int h1 (int (*)(int) = f); int h2 (int (*)(double) = f); // { dg-error "" } no matching f template int j (T t) { extern void k (int i = j (t)); // { dg-error "" } default argument uses local k (); return 0; } template int j (double);