aboutsummaryrefslogtreecommitdiff
path: root/misc/sys/cdefs.h
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2011-10-27 16:52:22 +0200
committerAndreas Schwab <schwab@redhat.com>2011-10-27 17:20:14 +0200
commit3871f58f065dac3917eb18220a479e9591769c8c (patch)
tree44e025a15a6972cdf70070b6fcd04bf9330b8884 /misc/sys/cdefs.h
parent21b64b153631b762fba3489caf04e14c93c8d009 (diff)
downloadglibc-3871f58f065dac3917eb18220a479e9591769c8c.zip
glibc-3871f58f065dac3917eb18220a479e9591769c8c.tar.gz
glibc-3871f58f065dac3917eb18220a479e9591769c8c.tar.bz2
Don't mark memory synchronisation functions as leaf
Diffstat (limited to 'misc/sys/cdefs.h')
-rw-r--r--misc/sys/cdefs.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index 72073e8..16cf557 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -38,7 +38,8 @@
#ifdef __GNUC__
-/* All functions, except those with callbacks, are leaf functions. */
+/* All functions, except those with callbacks or those that
+ synchronize memory, are leaf functions. */
# if __GNUC_PREREQ (4, 6) && !defined _LIBC
# define __LEAF , __leaf__
# define __LEAF_ATTR __attribute__ ((__leaf__))
@@ -54,13 +55,16 @@
the -fexceptions options for C code as well. */
# if !defined __cplusplus && __GNUC_PREREQ (3, 3)
# define __THROW __attribute__ ((__nothrow__ __LEAF))
+# define __THROWNL __attribute__ ((__nothrow__))
# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct
# else
# if defined __cplusplus && __GNUC_PREREQ (2,8)
# define __THROW throw ()
+# define __THROWNL throw ()
# define __NTH(fct) __LEAF_ATTR fct throw ()
# else
# define __THROW
+# define __THROWNL
# define __NTH(fct) fct
# endif
# endif
@@ -70,6 +74,7 @@
# define __inline /* No inline functions. */
# define __THROW
+# define __THROWNL
# define __NTH(fct) fct
# define __const const