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
This commit is contained in:
parent
8bd46447b3
commit
87d33b419b
5 changed files with 33 additions and 8 deletions
|
@ -1,3 +1,13 @@
|
|||
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>
|
||||
|
||||
* include/std/std_complex.h (log(const complex<_Tp>&)): When
|
||||
|
|
|
@ -310,6 +310,7 @@ GLIBCXX_3.4.5 {
|
|||
_ZNSt8ios_base17_M_call_callbacksENS_5eventE;
|
||||
_ZNSt8ios_base20_M_dispose_callbacksEv;
|
||||
_ZNSt6locale5facet13_S_get_c_nameEv;
|
||||
_ZN11__gnu_debug13__fancy_abortEPKciS1_S1_;
|
||||
|
||||
} GLIBCXX_3.4.4;
|
||||
|
||||
|
|
|
@ -41,15 +41,10 @@
|
|||
|
||||
#ifdef _GLIBCXX_DEBUG
|
||||
# include <debug/macros.h>
|
||||
|
||||
// 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)
|
||||
# define _GLIBCXX_DEBUG_ASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition)
|
||||
|
||||
# ifdef _GLIBCXX_DEBUG_PEDANTIC
|
||||
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) assert(_Condition)
|
||||
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition) _GLIBCXX_DEBUG_ABORT(_Condition)
|
||||
# else
|
||||
# define _GLIBCXX_DEBUG_PEDASSERT(_Condition)
|
||||
# endif
|
||||
|
|
|
@ -40,7 +40,17 @@
|
|||
* 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 { \
|
||||
if (! (_Condition)) \
|
||||
::__gnu_debug::_Error_formatter::_M_at(__FILE__, __LINE__) \
|
||||
|
|
|
@ -48,6 +48,15 @@ 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;)",
|
||||
|
|
Loading…
Add table
Reference in a new issue