https://gcc.gnu.org/bugzilla/show_bug.cgi?id=45486
Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code Status|UNCONFIRMED |NEW Last reconfirmed| |2014-11-08 CC| |fxcoudert at gcc dot gnu.org Target Milestone|--- |4.9.0 Summary|throw not being caught |[4.8 only] throw not being | |caught Ever confirmed|0 |1 --- Comment #2 from Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> --- This works on x86_64-apple-darwin64, both at -m32 and -m64, for g++ 4.9 and trunk. On 4.8, however, I get the following error, similar to the original report: Before try block Before throw_int. terminate called after throwing an instance of 'int' zsh: abort ./a.out with the following backtrace: * thread #1: tid = 0x66658b, 0x00007fff917e2282 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT * frame #0: 0x00007fff917e2282 libsystem_kernel.dylib`__pthread_kill + 10 frame #1: 0x00007fff8fc2d4c3 libsystem_pthread.dylib`pthread_kill + 90 frame #2: 0x00007fff8e38bb73 libsystem_c.dylib`abort + 129 frame #3: 0x00000001000099fb libstdc++.6.dylib`__gnu_cxx::__verbose_terminate_handler() + 315 frame #4: 0x0000000100007888 libstdc++.6.dylib`__cxxabiv1::__terminate(void (*)()) + 8 frame #5: 0x00000001000078d3 libstdc++.6.dylib`std::terminate() + 19 frame #6: 0x0000000100007afe libstdc++.6.dylib`__cxa_throw + 94 frame #7: 0x00000001000016b3 a.out`A::throw_int(this=<unavailable>) const + 51 at a.C:9 frame #8: 0x00000001000016cd a.out`B::throw_int(this=0x00007fff5fbff9bb) + 25 at a.C:20 frame #9: 0x0000000100001559 a.out`main + 101 at a.C:31 frame #10: 0x0000000100000fd8 a.out`_start + 230 frame #11: 0x0000000100000ef1 a.out`start + 33