Index: boost/throw_exception.hpp =================================================================== --- boost/throw_exception.hpp (revision 60623) +++ boost/throw_exception.hpp (working copy) @@ -47,6 +47,11 @@ namespace exception_detail { +#if BOOST_WORKAROUND(__GNUC__, >= 3) + template + void + throw_exception_( E const & x, char const * current_function, char const * file, int line ) __attribute__((noreturn)); +#endif template void throw_exception_( E const & x, char const * current_function, char const * file, int line ) Index: boost/exception/exception.hpp =================================================================== --- boost/exception/exception.hpp (revision 60623) +++ boost/exception/exception.hpp (working copy) @@ -415,6 +415,10 @@ void rethrow() const +#if BOOST_WORKAROUND(__GNUC__, >= 3) + __attribute__((noreturn)) +#endif + { throw*this; }