// { dg-do run  }
// Bug: the temporary returned from f is elided, causing a to be constructed
// twice but only destroyed once.

extern "C" int printf (const char *, ...);

int c,d;

struct A {
  A (int) { c++; }
  ~A () { d++; }
  A (const A&) { c++; }
  int i;
};

A f ()
{ return 1; }

int main ()
{
  {
    A a (1);
    a = f ();
  }
  printf ("%d %d\n", c, d);
  return c != d;
}
