From 5eceb3958ee6cb42d57d4fe52dd76fb03b178edf Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 16 Oct 2012 18:45:24 +0000 Subject: * libc/include/sys/features.h (__GNUC_PREREQ): Define. Use throughout in place of explicit GNUC version checks. * libc/include/_ansi.h (_NOINLINE): Define. (_NOINLINE_STATIC): Define. * libc/stdio/vfprintf.c (__sbprintf): Define _NOINLINE_STATIC. --- newlib/libc/include/_ansi.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'newlib/libc/include/_ansi.h') diff --git a/newlib/libc/include/_ansi.h b/newlib/libc/include/_ansi.h index 86cb82b35..c5597b30b 100644 --- a/newlib/libc/include/_ansi.h +++ b/newlib/libc/include/_ansi.h @@ -34,9 +34,7 @@ #define _BEGIN_STD_C extern "C" { #define _END_STD_C } #endif -#if defined(__GNUC__) && \ - ( (__GNUC__ >= 4) || \ - ( (__GNUC__ >= 3) && defined(__GNUC_MINOR__) && (__GNUC_MINOR__ >= 3) ) ) +#if __GNUC_PREREQ (3, 3) #define _NOTHROW __attribute__ ((nothrow)) #else #define _NOTHROW throw() @@ -133,4 +131,14 @@ #define _ELIDABLE_INLINE static __inline__ #endif +#if __GNUC_PREREQ (3, 1) +#define _NOINLINE __attribute__ ((__noinline__)) +#define _NOINLINE_STATIC _NOINLINE static +#else +/* On non-GNU compilers and GCC prior to version 3.1 the compiler can't be + trusted not to inline if it is static. */ +#define _NOINLINE +#define _NOINLINE_STATIC +#endif + #endif /* _ANSIDECL_H_ */ -- cgit v1.2.3