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


Reply via email to