diff options
-rw-r--r-- | libstdc++-v3/ChangeLog | 11 | ||||
-rw-r--r-- | libstdc++-v3/config/linker-map.gnu | 1 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/debug.h | 30 | ||||
-rw-r--r-- | libstdc++-v3/include/debug/macros.h | 10 | ||||
-rw-r--r-- | libstdc++-v3/src/debug.cc | 11 |
5 files changed, 38 insertions, 25 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d8ee627..76c62a1 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,16 @@ 2005-08-26 Benjamin Kosnik <bkoz@redhat.com> + PR libstdc++/20534 (contd) + * src/debug.cc (__gnu_debug): Remove __fancy_abort definition. + Remove cstdio and cstdlib includes. + * include/debug/debug.h: Define inline here. Remove + _GLIBCXX_DEBUG_ABORT. + * include/debug/macros.h: Remove __fancy_abort declaration, + _GLIBXX_DEBUG_ABORT definition. + * config/linker-map.gnu: Remove export. + +2005-08-26 Benjamin Kosnik <bkoz@redhat.com> + * scripts/check_compile (UNIQUE_ID): New. Use to name output files. 2005-08-26 Paolo Carlini <pcarlini@suse.de> diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu index 1ba34f0..3099bfb 100644 --- a/libstdc++-v3/config/linker-map.gnu +++ b/libstdc++-v3/config/linker-map.gnu @@ -566,7 +566,6 @@ GLIBCXX_3.4.6 { _ZNSt8ios_base17_M_call_callbacksENS_5eventE; _ZNSt8ios_base20_M_dispose_callbacksEv; _ZNSt6locale5facet13_S_get_c_nameEv; - _ZN11__gnu_debug13__fancy_abortEPKciS1_S1_; _ZNSt15basic_stringbufI[cw]St11char_traitsI[cw]ESaI[cw]EE9showmanycEv; diff --git a/libstdc++-v3/include/debug/debug.h b/libstdc++-v3/include/debug/debug.h index 9865520..c291096 100644 --- a/libstdc++-v3/include/debug/debug.h +++ b/libstdc++-v3/include/debug/debug.h @@ -40,11 +40,35 @@ */ #ifdef _GLIBCXX_DEBUG -# include <debug/macros.h> -# define _GLIBCXX_DEBUG_ASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition) + +# include <debug/macros.h> +# include <cstdlib> +# include <cstdio> + +// Avoid the use of assert, because we're trying to keep the <cassert> +// include out of the mix. +namespace __gnu_debug +{ + inline void + __replacement_assert(const char* __file, int __line, const char* __function, + const char* __condition) + { + std::printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line, + __function, __condition); + std::abort(); + } +} + +#define _GLIBCXX_DEBUG_ASSERT(_Condition) \ + do { \ + if (! (_Condition)) \ + ::__gnu_debug::__replacement_assert(__FILE__, __LINE__, \ + __PRETTY_FUNCTION__, \ + #_Condition); \ + } while (false) # ifdef _GLIBCXX_DEBUG_PEDANTIC -# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition) +# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) _GLIBCXX_DEBUG_ASSERT(_Condition) # else # define _GLIBCXX_DEBUG_PEDASSERT(_Condition) # endif diff --git a/libstdc++-v3/include/debug/macros.h b/libstdc++-v3/include/debug/macros.h index 411e36e..9b279cb 100644 --- a/libstdc++-v3/include/debug/macros.h +++ b/libstdc++-v3/include/debug/macros.h @@ -40,16 +40,6 @@ * the user error and where the error is reported. * */ -namespace __gnu_debug -{ void __fancy_abort(const char*, int, const char*, const char*); } -#define _GLIBCXX_DEBUG_ABORT(_Condition) \ - do { \ - if (! (_Condition)) \ - ::__gnu_debug::__fancy_abort(__FILE__, __LINE__, \ - __PRETTY_FUNCTION__, \ - #_Condition); \ - } while (false) - #define _GLIBCXX_DEBUG_VERIFY(_Condition,_ErrorMessage) \ do { \ if (! (_Condition)) \ diff --git a/libstdc++-v3/src/debug.cc b/libstdc++-v3/src/debug.cc index a86367a..af927e1 100644 --- a/libstdc++-v3/src/debug.cc +++ b/libstdc++-v3/src/debug.cc @@ -32,10 +32,8 @@ #include <debug/safe_sequence.h> #include <debug/safe_iterator.h> #include <algorithm> -#include <cstdlib> #include <cassert> #include <cstring> -#include <cstdio> #include <cctype> #include <bits/concurrence.h> @@ -48,15 +46,6 @@ namespace __gnu_internal namespace __gnu_debug { - void - __fancy_abort(const char* __file, int __line, const char* __function, - const char* __condition) - { - printf("%s:%d: %s: Assertion '%s' failed.\n", __file, __line, - __function, __condition); - abort(); - } - const char* _S_debug_messages[] = { "function requires a valid iterator range [%1.name;, %2.name;)", |