// { dg-do run  }
// Bug: obj gets destroyed twice because the fixups for the return are
// inside its cleanup region.

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

int d;

struct myExc { };

struct myExcRaiser {
  ~myExcRaiser() { throw myExc(); }
};

struct stackObj {
  ~stackObj() { ++d; printf ("stackObj::~stackObj()\n"); }
};

int test()
{
  myExcRaiser rais;
  stackObj obj;
  return 0;
}

int main()
{
  try {
    test();
  }
  catch (myExc &) {
    return d != 1;
  }
  return 1;
}
