aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@redhat.com>2005-08-26 21:10:59 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2005-08-26 21:10:59 +0000
commit277d42e27fa0271ca8cc3cd00607980b5731ed51 (patch)
tree8a9ff1231f676eb1b8f844fa75ddbd482309c0c5
parent327d749cf801245ac09a5539bb0ee4f07a32002c (diff)
downloadgcc-277d42e27fa0271ca8cc3cd00607980b5731ed51.zip
gcc-277d42e27fa0271ca8cc3cd00607980b5731ed51.tar.gz
gcc-277d42e27fa0271ca8cc3cd00607980b5731ed51.tar.bz2
PR libstdc++/20534 (contd)
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. From-SVN: r103535
-rw-r--r--libstdc++-v3/ChangeLog11
-rw-r--r--libstdc++-v3/config/linker-map.gnu1
-rw-r--r--libstdc++-v3/include/debug/debug.h30
-rw-r--r--libstdc++-v3/include/debug/macros.h10
-rw-r--r--libstdc++-v3/src/debug.cc11
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;)",