diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2011-11-17 21:56:08 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2011-11-17 21:56:08 +0000 |
commit | 913a0f6c362c8c9aac72f800485678845a60ed06 (patch) | |
tree | 227afb2373db8f9494b69c20069cce6a03ab0914 /libc/misc/sys/cdefs.h | |
parent | 86abb02796d5bfc0c71d46ad9923ff8737e03280 (diff) | |
download | eglibc2-913a0f6c362c8c9aac72f800485678845a60ed06.tar.gz |
Merge changes between r15584 and r15868 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@15869 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/misc/sys/cdefs.h')
-rw-r--r-- | libc/misc/sys/cdefs.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/libc/misc/sys/cdefs.h b/libc/misc/sys/cdefs.h index 72073e855..c856e87a0 100644 --- a/libc/misc/sys/cdefs.h +++ b/libc/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 @@ -187,9 +192,13 @@ # ifdef __cplusplus # define __REDIRECT_NTH(name, proto, alias) \ name proto __THROW __asm__ (__ASMNAME (#alias)) +# define __REDIRECT_NTHNL(name, proto, alias) \ + name proto __THROWNL __asm__ (__ASMNAME (#alias)) # else # define __REDIRECT_NTH(name, proto, alias) \ name proto __asm__ (__ASMNAME (#alias)) __THROW +# define __REDIRECT_NTHNL(name, proto, alias) \ + name proto __asm__ (__ASMNAME (#alias)) __THROWNL # endif # define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) # define __ASMNAME2(prefix, cname) __STRING (prefix) cname |