[Bug target/45486] [4.8 only] throw not being caught
fxcoudert at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Nov 8 21:11:00 GMT 2014
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
More information about the Gcc-bugs
mailing list