summaryrefslogtreecommitdiff
path: root/assert/assert.h
diff options
context:
space:
mode:
Diffstat (limited to 'assert/assert.h')
-rw-r--r--assert/assert.h24
1 files changed, 17 insertions, 7 deletions
diff --git a/assert/assert.h b/assert/assert.h
index ec54f64c05..bbff9417f4 100644
--- a/assert/assert.h
+++ b/assert/assert.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -87,13 +87,23 @@ __END_DECLS
/* Version 2.4 and later of GCC define a magical variable `__PRETTY_FUNCTION__'
which contains the name of the function currently being defined.
- This is broken in G++ before version 2.6. */
-# if (!defined __GNUC__ || __GNUC__ < 2 || \
- __GNUC_MINOR__ < (defined __cplusplus ? 6 : 4))
-# define __ASSERT_FUNCTION ((__const char *) 0)
-# else
# define __ASSERT_FUNCTION __PRETTY_FUNCTION__
+ This is broken in G++ before version 2.6.
+ C9x has a similar variable called __func__, but prefer the GCC one since
+ it demangles C++ function names. */
+# ifdef __GNUC__
+# if __GNUC__ > 2 || (__GNUC__ == 2 \
+ && __GNUC_MINOR__ >= (defined __cplusplus ? 6 : 4))
+# define __ASSERT_FUNCTION __PRETTY_FUNCTION__
+# else
+# define __ASSERT_FUNCTION ((__const char *) 0)
+# endif
+# else
+# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
+# define __ASSERT_FUNCTION __func__
+# else
+# define __ASSERT_FUNCTION ((__const char *) 0)
+# endif
# endif
-
#endif /* NDEBUG. */