http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60612
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2014-03-21 Ever confirmed|0 |1 --- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- In C++11 destructors have an implicit noexcept, so the 4.7 behaviour is wrong: the program should call std::terminate() when the exception leaves ~A() If you change the program to: ~A() noexcept(false) then it runs and exits normally. If you explicitly add: ~A() noexcept(true) then you get the same behaviour from 4.7 and 4.8, it segfaults in the terminate handler.