Commit 87d33b41 by Paolo Carlini Committed by Paolo Carlini

PR libstdc++/20534 (contd)

2005-05-31  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/20534 (contd)
	* include/debug/macros.h: Add _GLIBCXX_DEBUG_ABORT, using
	__gnu_debug::__fancy_abort.
	* src/debug.cc: Define the latter.
	* include/debug/debug.h: Use _GLIBCXX_DEBUG_ABORT instead of
	assert.
	* config/linker-map.gnu (__gnu_debug::__fancy_abort): Add.

From-SVN: r100405
parent 8bd46447
2005-05-31 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/20534 (contd)
* include/debug/macros.h: Add _GLIBCXX_DEBUG_ABORT, using
__gnu_debug::__fancy_abort.
* src/debug.cc: Define the latter.
* include/debug/debug.h: Use _GLIBCXX_DEBUG_ABORT instead of
assert.
* config/linker-map.gnu (__gnu_debug::__fancy_abort): Add.
2005-05-30 Paolo Carlini <pcarlini@suse.de> 2005-05-30 Paolo Carlini <pcarlini@suse.de>
* include/std/std_complex.h (log(const complex<_Tp>&)): When * include/std/std_complex.h (log(const complex<_Tp>&)): When
......
...@@ -310,6 +310,7 @@ GLIBCXX_3.4.5 { ...@@ -310,6 +310,7 @@ GLIBCXX_3.4.5 {
_ZNSt8ios_base17_M_call_callbacksENS_5eventE; _ZNSt8ios_base17_M_call_callbacksENS_5eventE;
_ZNSt8ios_base20_M_dispose_callbacksEv; _ZNSt8ios_base20_M_dispose_callbacksEv;
_ZNSt6locale5facet13_S_get_c_nameEv; _ZNSt6locale5facet13_S_get_c_nameEv;
_ZN11__gnu_debug13__fancy_abortEPKciS1_S1_;
} GLIBCXX_3.4.4; } GLIBCXX_3.4.4;
......
...@@ -41,15 +41,10 @@ ...@@ -41,15 +41,10 @@
#ifdef _GLIBCXX_DEBUG #ifdef _GLIBCXX_DEBUG
# include <debug/macros.h> # include <debug/macros.h>
# define _GLIBCXX_DEBUG_ASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition)
// The debug mode requires assert functionality, but keep this include
// conditionalized, so that non-debug use doesn't mandate exposure to the
// assert macro.
# include <cassert>
# define _GLIBCXX_DEBUG_ASSERT(_Condition) assert(_Condition)
# ifdef _GLIBCXX_DEBUG_PEDANTIC # ifdef _GLIBCXX_DEBUG_PEDANTIC
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) assert(_Condition) # define _GLIBCXX_DEBUG_PEDASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition)
# else # else
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) # define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
# endif # endif
......
...@@ -40,7 +40,17 @@ ...@@ -40,7 +40,17 @@
* the user error and where the error is reported. * the user error and where the error is reported.
* *
*/ */
#define _GLIBCXX_DEBUG_VERIFY(_Condition,_ErrorMessage) \ 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 { \ do { \
if (! (_Condition)) \ if (! (_Condition)) \
::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \ ::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \
......
...@@ -48,6 +48,15 @@ namespace __gnu_internal ...@@ -48,6 +48,15 @@ namespace __gnu_internal
namespace __gnu_debug 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[] = const char* _S_debug_messages[] =
{ {
"function requires a valid iterator range [%1.name;, %2.name;)", "function requires a valid iterator range [%1.name;, %2.name;)",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment