mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 22:10:13 +00:00
Use leaf function attribute in __THROW
This commit is contained in:
parent
ad0f5cad15
commit
aa78043a4a
@ -1,5 +1,7 @@
|
||||
2011-10-16 Ulrich Drepper <drepper@gmail.com>
|
||||
|
||||
* misc/sys/cdefs.h: Use leaf function attribute in __THROW.
|
||||
|
||||
* sysdeps/ieee754/dbl-64/s_ceil.c: Avoid alias renamed.
|
||||
* sysdeps/ieee754/dbl-64/s_floor.c: Likewise.
|
||||
* sysdeps/ieee754/dbl-64/s_rint.c: Likewise.
|
||||
|
@ -38,18 +38,27 @@
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
/* All functions, except those with callbacks, are leaf functions. */
|
||||
# if __GNUC_PREREQ (4, 6) && !defined _LIBC
|
||||
# define __LEAF , __leaf__
|
||||
# define __LEAF_ATTR __attribute__ ((__leaf__))
|
||||
# else
|
||||
# define __LEAF
|
||||
# define __LEAF_ATTR
|
||||
# endif
|
||||
|
||||
/* GCC can always grok prototypes. For C++ programs we add throw()
|
||||
to help it optimize the function calls. But this works only with
|
||||
gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions
|
||||
as non-throwing using a function attribute since programs can use
|
||||
the -fexceptions options for C code as well. */
|
||||
# if !defined __cplusplus && __GNUC_PREREQ (3, 3)
|
||||
# define __THROW __attribute__ ((__nothrow__))
|
||||
# define __NTH(fct) __attribute__ ((__nothrow__)) fct
|
||||
# define __THROW __attribute__ ((__nothrow__ __LEAF_ATTR))
|
||||
# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF_ATTR)) fct
|
||||
# else
|
||||
# if defined __cplusplus && __GNUC_PREREQ (2,8)
|
||||
# define __THROW throw ()
|
||||
# define __NTH(fct) fct throw ()
|
||||
# define __NTH(fct) __LEAF_ATTR fct throw ()
|
||||
# else
|
||||
# define __THROW
|
||||
# define __NTH(fct) fct
|
||||
|
Loading…
Reference in New Issue
Block a user