eh_catch.cc (uncaught_exception, [...]): Return false or zero if the library is built without exceptions.

2015-04-27  Federico Lenarduzzi  <federico.lenarduzzi@tallertechnologies.com>
	    Jonathan Wakely  <jwakely@redhat.com>

	* 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 <jwakely@redhat.com>

From-SVN: r222484
This commit is contained in:
Federico Lenarduzzi 2015-04-27 21:06:17 +00:00 committed by Jonathan Wakely
parent 913ae610c2
commit 03e73da676
3 changed files with 17 additions and 1 deletions

View File

@ -1,3 +1,11 @@
2015-04-27 Federico Lenarduzzi <federico.lenarduzzi@tallertechnologies.com>
Jonathan Wakely <jwakely@redhat.com>
* 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 <ville.voutilainen@gmail.com>
* config/abi/pre/gnu.ver: Fix comment.

View File

@ -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
}

View File

@ -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;