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

Reply via email to