Author: faridz Date: Wed Nov 21 07:23:43 2007 New Revision: 597111 URL: http://svn.apache.org/viewvc?rev=597111&view=rev Log: 2007-11-21 Farid Zaripov <[EMAIL PROTECTED]>
STDCXX-557 * terminate.h: New header file with a definition of the std::terminate(). * BAD_ALLOC_ASSIGNMENT.cpp (terminate): Function removed, #included "terminate.h" instead. * DYNAMIC_CAST.cpp: Ditto. * EXCEPTIONS.cpp: Ditto. * FLOAT.cpp: Ditto. * GLOBAL_BAD_ALLOC.cpp: Ditto. * GLOBAL_BAD_CAST.cpp: Ditto. * GLOBAL_BAD_EXCEPTION.cpp: Ditto. * GLOBAL_BAD_TYPEID.cpp: Ditto. * GLOBAL_EXCEPTION.cpp: Ditto. * GLOBAL_UNCAUGHT_EXCEPTION.cpp: Ditto. * LIB_EXCEPTIONS.cpp: Ditto. * LIMITS.cpp: Ditto. * NEW_THROWS.cpp: Ditto. * OPERATOR_DELETE_ARRAY_PLACEMENT.cpp: Ditto. * OPERATOR_DELETE_PLACEMENT.cpp: Ditto. * OPERATOR_NEW_ARRAY_PLACEMENT.cpp: Ditto. * OPERATOR_NEW_PLACEMENT.cpp: Ditto. * STD_BAD_ALLOC.cpp: Ditto. * STD_BAD_CAST.cpp: Ditto. * STD_BAD_EXCEPTION.cpp: Ditto. * STD_BAD_TYPEID.cpp: Ditto. * STD_EXCEPTION.cpp: Ditto. * STD_UNCAUGHT_EXCEPTION.cpp: Ditto. * TYPE_INFO_DTOR.cpp: Ditto. Added: incubator/stdcxx/branches/4.2.x/etc/config/src/terminate.h (with props) Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/BAD_ALLOC_ASSIGNMENT.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/DYNAMIC_CAST.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/EXCEPTIONS.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/FLOAT.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_ALLOC.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_CAST.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_EXCEPTION.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_TYPEID.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_EXCEPTION.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_UNCAUGHT_EXCEPTION.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/LIB_EXCEPTIONS.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/LIMITS.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/NEW_THROWS.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_ARRAY_PLACEMENT.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_PLACEMENT.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_ARRAY_PLACEMENT.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_PLACEMENT.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_ALLOC.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_CAST.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_EXCEPTION.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_TYPEID.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/STD_EXCEPTION.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/STD_UNCAUGHT_EXCEPTION.cpp incubator/stdcxx/branches/4.2.x/etc/config/src/TYPE_INFO_DTOR.cpp Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/BAD_ALLOC_ASSIGNMENT.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/BAD_ALLOC_ASSIGNMENT.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/BAD_ALLOC_ASSIGNMENT.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/BAD_ALLOC_ASSIGNMENT.cpp Wed Nov 21 07:23:43 2007 @@ -57,27 +57,7 @@ #if 2 == __GNUG__ # ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - -terminate_loop: - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } - - // prevent gcc warnings for a function - // that's not supposed to return - goto terminate_loop; -} - -} - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE # endif // _RWSTD_NO_HONOR_STD #endif // gcc 2.x Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/DYNAMIC_CAST.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/DYNAMIC_CAST.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/DYNAMIC_CAST.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/DYNAMIC_CAST.cpp Wed Nov 21 07:23:43 2007 @@ -31,18 +31,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - for (char *p = 0; ; ++p) { - *p = 0; // force a SIGSEGV - } -} - -} - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/EXCEPTIONS.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/EXCEPTIONS.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/EXCEPTIONS.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/EXCEPTIONS.cpp Wed Nov 21 07:23:43 2007 @@ -26,20 +26,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - for (; ;) { - char *p = 0; - *p = 0; // force a SIGSEGV - } -} - -} // std - - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/FLOAT.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/FLOAT.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/FLOAT.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/FLOAT.cpp Wed Nov 21 07:23:43 2007 @@ -202,20 +202,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - for (; ;) { - char *p = 0; - *p = 0; // force a SIGSEGV - } -} - -} // std - - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD @@ -414,4 +401,5 @@ return 0; } + Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_ALLOC.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_ALLOC.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_ALLOC.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_ALLOC.cpp Wed Nov 21 07:23:43 2007 @@ -37,25 +37,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - -loop: - - while ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } - - goto loop; -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_CAST.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_CAST.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_CAST.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_CAST.cpp Wed Nov 21 07:23:43 2007 @@ -27,21 +27,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_EXCEPTION.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_EXCEPTION.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_EXCEPTION.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_EXCEPTION.cpp Wed Nov 21 07:23:43 2007 @@ -27,21 +27,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_TYPEID.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_TYPEID.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_TYPEID.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_BAD_TYPEID.cpp Wed Nov 21 07:23:43 2007 @@ -44,21 +44,7 @@ #if 2 == __GNUG__ # ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE # endif // _RWSTD_NO_HONOR_STD #endif // gcc 2.x Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_EXCEPTION.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_EXCEPTION.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_EXCEPTION.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_EXCEPTION.cpp Wed Nov 21 07:23:43 2007 @@ -27,21 +27,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_UNCAUGHT_EXCEPTION.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_UNCAUGHT_EXCEPTION.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_UNCAUGHT_EXCEPTION.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/GLOBAL_UNCAUGHT_EXCEPTION.cpp Wed Nov 21 07:23:43 2007 @@ -27,21 +27,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/LIB_EXCEPTIONS.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/LIB_EXCEPTIONS.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/LIB_EXCEPTIONS.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/LIB_EXCEPTIONS.cpp Wed Nov 21 07:23:43 2007 @@ -38,20 +38,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - for (; ;) { - char *p = 0; - *p = 0; // force a SIGSEGV - } -} - -} // std - - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/LIMITS.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/LIMITS.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/LIMITS.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/LIMITS.cpp Wed Nov 21 07:23:43 2007 @@ -48,20 +48,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - for (; ;) { - char *p = 0; - *p = 0; // force a SIGSEGV - } -} - -} // std - - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/NEW_THROWS.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/NEW_THROWS.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/NEW_THROWS.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/NEW_THROWS.cpp Wed Nov 21 07:23:43 2007 @@ -36,25 +36,7 @@ #if 2 == __GNUG__ # ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - -loop: - - while ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } - - goto loop; -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE # endif // _RWSTD_NO_HONOR_STD #endif // gcc 2.x Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_ARRAY_PLACEMENT.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_ARRAY_PLACEMENT.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_ARRAY_PLACEMENT.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_ARRAY_PLACEMENT.cpp Wed Nov 21 07:23:43 2007 @@ -32,25 +32,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - -loop: - - while ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } - - goto loop; -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_PLACEMENT.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_PLACEMENT.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_PLACEMENT.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_DELETE_PLACEMENT.cpp Wed Nov 21 07:23:43 2007 @@ -33,25 +33,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - -loop: - - while ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } - - goto loop; -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_ARRAY_PLACEMENT.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_ARRAY_PLACEMENT.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_ARRAY_PLACEMENT.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_ARRAY_PLACEMENT.cpp Wed Nov 21 07:23:43 2007 @@ -32,25 +32,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - -loop: - - while ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } - - goto loop; -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_PLACEMENT.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_PLACEMENT.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_PLACEMENT.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/OPERATOR_NEW_PLACEMENT.cpp Wed Nov 21 07:23:43 2007 @@ -32,25 +32,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - -loop: - - while ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } - - goto loop; -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_ALLOC.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_ALLOC.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_ALLOC.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_ALLOC.cpp Wed Nov 21 07:23:43 2007 @@ -37,25 +37,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - -loop: - - while ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } - - goto loop; -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_CAST.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_CAST.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_CAST.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_CAST.cpp Wed Nov 21 07:23:43 2007 @@ -27,21 +27,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_EXCEPTION.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_EXCEPTION.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_EXCEPTION.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_EXCEPTION.cpp Wed Nov 21 07:23:43 2007 @@ -26,21 +26,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_TYPEID.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_TYPEID.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_TYPEID.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/STD_BAD_TYPEID.cpp Wed Nov 21 07:23:43 2007 @@ -49,21 +49,7 @@ #if 2 == __GNUG__ # ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE # endif // _RWSTD_NO_HONOR_STD #endif // gcc 2.x Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/STD_EXCEPTION.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/STD_EXCEPTION.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/STD_EXCEPTION.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/STD_EXCEPTION.cpp Wed Nov 21 07:23:43 2007 @@ -26,21 +26,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/STD_UNCAUGHT_EXCEPTION.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/STD_UNCAUGHT_EXCEPTION.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/STD_UNCAUGHT_EXCEPTION.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/STD_UNCAUGHT_EXCEPTION.cpp Wed Nov 21 07:23:43 2007 @@ -27,21 +27,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - if ((ip [0] = ip [1])) { // force a SIGSEGV - ++ip; - terminate (); // recurse infinitely - } -} - -} // namespace std - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Modified: incubator/stdcxx/branches/4.2.x/etc/config/src/TYPE_INFO_DTOR.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/TYPE_INFO_DTOR.cpp?rev=597111&r1=597110&r2=597111&view=diff ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/TYPE_INFO_DTOR.cpp (original) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/TYPE_INFO_DTOR.cpp Wed Nov 21 07:23:43 2007 @@ -27,19 +27,7 @@ #ifndef _RWSTD_NO_HONOR_STD # ifdef _RWSTD_NO_STD_TERMINATE - -namespace std { - -void terminate () -{ - static int *ip; - - *ip++ = 0; // force a SIGSEGV - terminate (); // recurse infinitely -} - -} - +# include "terminate.h" # endif // _RWSTD_NO_STD_TERMINATE #endif // _RWSTD_NO_HONOR_STD Added: incubator/stdcxx/branches/4.2.x/etc/config/src/terminate.h URL: http://svn.apache.org/viewvc/incubator/stdcxx/branches/4.2.x/etc/config/src/terminate.h?rev=597111&view=auto ============================================================================== --- incubator/stdcxx/branches/4.2.x/etc/config/src/terminate.h (added) +++ incubator/stdcxx/branches/4.2.x/etc/config/src/terminate.h Wed Nov 21 07:23:43 2007 @@ -0,0 +1,84 @@ + +/*************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the License); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + * + * Copyright 1999-2007 Rogue Wave Software, Inc. + * + **************************************************************************/ + +namespace std { + +void terminate () +{ + static int *ip; + +terminate_loop: + + if ((ip [0] = ip [1])) { // force a SIGSEGV + ++ip; + terminate (); // recurse infinitely + } + + // prevent gcc warnings for a function + // that's not supposed to return + goto terminate_loop; +} + +} + +/*************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the License); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + * + * Copyright 1999-2007 Rogue Wave Software, Inc. + * + **************************************************************************/ + +namespace std { + +void terminate () +{ + static int *ip; + +terminate_loop: + + if ((ip [0] = ip [1])) { // force a SIGSEGV + ++ip; + terminate (); // recurse infinitely + } + + // prevent gcc warnings for a function + // that's not supposed to return + goto terminate_loop; +} + +} Propchange: incubator/stdcxx/branches/4.2.x/etc/config/src/terminate.h ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/stdcxx/branches/4.2.x/etc/config/src/terminate.h ------------------------------------------------------------------------------ svn:keywords = Id