------- Comment #2 from reichelt at gcc dot gnu dot org 2009-05-15 22:53 ------- Confirmed. Reduced testcase (crahses already with "-O"):
=================================================== struct A { void foo(int*, int); }; struct B { B(); ~B() { A().foo(p, q - p); } int *p, *q; }; struct C : B { C() { bar(); } ~C() { baz(bar(), bar()); } int bar(); void baz(int, int); }; struct D { D(C*); ~D() { try { delete p; } catch (...) {} } C* operator->() { delete p; return 0; } C* p; }; struct E { E() : d(new C) { d->baz(d->bar(), d->bar()); } D d; }; struct F { F(); virtual ~F(); E e1, e2, e3; }; F::F() {} F::~F() {} =================================================== -- reichelt at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |reichelt at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2009-05-15 22:53:07 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40163