From 03e73da67634e8dce1cca6b77dd9673d16226dc6 Mon Sep 17 00:00:00 2001 From: Federico Lenarduzzi Date: Mon, 27 Apr 2015 21:06:17 +0000 Subject: [PATCH] eh_catch.cc (uncaught_exception, [...]): Return false or zero if the library is built without exceptions. 2015-04-27 Federico Lenarduzzi Jonathan Wakely * libsupc++/eh_catch.cc (uncaught_exception, uncaught_exceptions): Return false or zero if the library is built without exceptions. * libsupc++/eh_term_handler.cc: Disable verbose terminate handler if the library is built without exceptions. Co-Authored-By: Jonathan Wakely From-SVN: r222484 --- libstdc++-v3/ChangeLog | 8 ++++++++ libstdc++-v3/libsupc++/eh_catch.cc | 8 ++++++++ libstdc++-v3/libsupc++/eh_term_handler.cc | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a8f82bc1c43..be9364c4ec9 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2015-04-27 Federico Lenarduzzi + Jonathan Wakely + + * libsupc++/eh_catch.cc (uncaught_exception, uncaught_exceptions): + Return false or zero if the library is built without exceptions. + * libsupc++/eh_term_handler.cc: Disable verbose terminate handler if + the library is built without exceptions. + 2015-04-27 Ville Voutilainen * config/abi/pre/gnu.ver: Fix comment. diff --git a/libstdc++-v3/libsupc++/eh_catch.cc b/libstdc++-v3/libsupc++/eh_catch.cc index 723ae56723d..44fde7969ce 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 46acee8ce22..0d6ea2b3216 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; -- 2.30.2