http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55917
--- Comment #11 from Yuri Aksenov <yuri.aksenov at gmail dot com> --- > Where is that guaranteed? Where is it implemented? And here is stack trace of patched version, it seems to be implemented in __cxxabiv1::__cxa_throw (gdb) bt #0 0x00007ffff703ad25 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #1 0x00007ffff703c1a8 in __GI_abort () at abort.c:91 #2 0x00007ffff791d68d in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95 #3 0x00007ffff791b796 in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:40 #4 0x00007ffff791b7c3 in std::terminate () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:50 #5 0x00007ffff791b9ee in __cxxabiv1::__cxa_throw (obj=0x7ffff0000940, tinfo=<optimized out>, dest=<optimized out>) at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:83 #6 0x00000000004010f2 in f () at main.cpp:5 #7 0x000000000040242d in std::_Bind_simple<void (*())()>::_M_invoke<>(std::_Index_tuple<>) (this=0x606040) at /usr/include/c++/4.7/functional:1598 #8 0x000000000040237d in std::_Bind_simple<void (*())()>::operator()() (this=0x606040) at /usr/include/c++/4.7/functional:1586 #9 0x0000000000402316 in std::thread::_Impl<std::_Bind_simple<void (*())()> >::_M_run() (this=0x606028) at /usr/include/c++/4.7/thread:115 #10 0x000000000040266d in std::(anonymous namespace)::execute_native_thread_routine (__p=0x606028) at thread.cpp:73 #11 0x00007ffff7bc6e0e in start_thread (arg=0x7ffff7005700) at pthread_create.c:305 #12 0x00007ffff70ea2cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115