http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55917
--- Comment #10 from Yuri Aksenov <yuri.aksenov at gmail dot com> --- OK, [thread.thread.constr]/4 says: > If the invocation of INVOKE(decay_copy( std::forward<F>(f)), > decay_copy(std::forward<Args>(args))...) terminates with an uncaught > exception, > std::terminate shall be called. And [except.handle]/9 says: > If no matching handler is found, the function std::terminate() is called So we don't need to set default handler unless there is bug in implementation of [except.handle]/9 I have tested std::thread with removed catch(...) for both -m32 and -m64 environments on gcc version 4.7.1 20120723 [gcc-4_7-branch revision 189773] (SUSE Linux) Target: x86_64-suse-linux And I can test it on Target: armv5b-softfloat-linux But I can not be shure for any possible target