This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

verbose terminate() on by default


While the libverbose_terminate patch was being tossed around, Nathan asked
why we couldn't just use it by default.  Originally, of course, it was due
to demangler licensing issues, but now that's past, the question is a very
good one.

The standard simply says that the default action of terminate is to
call abort.  The verbose one does so, it just does additional work, and
I can't find anywhere in the standard that prohibits us from doing so.
(When Jason originally posted the code, he mentioned that Sun's CC apparently
does something like this by default, so we're not even breaking new ground.)

This would obviate the need for extra libraries and whatnot, so my other
patch is superseded by this one.  Additional documentation would of
course follow.

There was also some mail about freestanding environments; please see the
recent mail on the libstdc++ list.

Tested on i686/linux, no new regressions.  This seems a big change, so
I'd like formal approval from somebody else before checking it in.


2002-12-23  Phil Edwards  <pme@gcc.gnu.org>

	* libsupc++/eh_terminate.cc (__cxxabiv1::__terminate_handler):
	Initialize to __gnu_cxx::__verbose_terminate_handler instead of
	std::abort.


Index: libsupc++/eh_terminate.cc
===================================================================
RCS file: /home/pme/Repositories/GCC/gcc/libstdc++-v3/libsupc++/eh_terminate.cc,v
retrieving revision 1.2
diff -u -3 -p -r1.2 eh_terminate.cc
--- libsupc++/eh_terminate.cc	9 Jun 2001 06:49:13 -0000	1.2
+++ libsupc++/eh_terminate.cc	23 Dec 2002 13:28:40 -0000
@@ -37,7 +37,8 @@
 using namespace __cxxabiv1;
 
 /* The current installed user handlers.  */
-std::terminate_handler __cxxabiv1::__terminate_handler = std::abort;
+std::terminate_handler __cxxabiv1::__terminate_handler =
+                                       __gnu_cxx::__verbose_terminate_handler;
 std::unexpected_handler __cxxabiv1::__unexpected_handler = std::terminate;
 
 void


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]