diff options
Diffstat (limited to 'libstdc++-v3/libsupc++')
-rw-r--r-- | libstdc++-v3/libsupc++/eh_catch.cc | 8 | ||||
-rw-r--r-- | libstdc++-v3/libsupc++/eh_term_handler.cc | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libstdc++-v3/libsupc++/eh_catch.cc b/libstdc++-v3/libsupc++/eh_catch.cc index 723ae56..44fde79 100644 --- a/libstdc++-v3/libsupc++/eh_catch.cc +++ b/libstdc++-v3/libsupc++/eh_catch.cc @@ -136,13 +136,21 @@ __cxxabiv1::__cxa_end_catch () bool std::uncaught_exception() throw() { +#if __cpp_exceptions __cxa_eh_globals *globals = __cxa_get_globals (); return globals->uncaughtExceptions != 0; +#else + return false; +#endif } int std::uncaught_exceptions() throw() { +#if __cpp_exceptions __cxa_eh_globals *globals = __cxa_get_globals (); return globals->uncaughtExceptions; +#else + return 0; +#endif } diff --git a/libstdc++-v3/libsupc++/eh_term_handler.cc b/libstdc++-v3/libsupc++/eh_term_handler.cc index 46acee8..0d6ea2b 100644 --- a/libstdc++-v3/libsupc++/eh_term_handler.cc +++ b/libstdc++-v3/libsupc++/eh_term_handler.cc @@ -32,7 +32,7 @@ --disable-libstdcxx-verbose and rebuilding the library. In a freestanding environment, we default to this latter approach. */ -#if _GLIBCXX_HOSTED && _GLIBCXX_VERBOSE +#if _GLIBCXX_HOSTED && _GLIBCXX_VERBOSE && __cpp_exceptions /* The current installed user handler. */ std::terminate_handler __cxxabiv1::__terminate_handler = __gnu_cxx::__verbose_terminate_handler; |