// { dg-do assemble  }
// Bug: the temporary from the default parameter to f2 is reused.
struct A {};
int f2 (int i, const A& ar = A());
void f (int i, int j = f2(1));
void g () { f (1); }
void h () { f (1); }
// { dg-do assemble  }
// Bug: the temporary from the default parameter to f2 is reused.
struct A {};
int f2 (int i, const A& ar = A());
void f (int i, int j = f2(1));
void g () { f (1); }
void h () { f (1); }