defarg1.C   [plain text]


// { 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 <class T>
int j (T t)
{
  extern void k (int i = j (t)); // { dg-error "" } default argument uses local

  k ();

  return 0;
}

template int j (double);