From b75b0ec399b1217568e08e567afdefaea0bd32ef Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Mon, 10 Jun 2013 14:55:13 +0200 Subject: [PATCH] Rename __noinline/__always_inline to prevent clash with headers. With this change noinline can be used in ldpreload.h. --- src/coloredstderr.c | 13 +++++++------ src/compiler.h | 10 ++++------ src/ldpreload.h | 7 +------ src/trackfds.h | 4 ++-- 4 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/coloredstderr.c b/src/coloredstderr.c index f005c72..dcd1166 100644 --- a/src/coloredstderr.c +++ b/src/coloredstderr.c @@ -20,6 +20,8 @@ #include +#include "compiler.h" + /* Must be loaded before the following headers. */ #include "ldpreload.h" @@ -51,7 +53,6 @@ static int force_write_to_non_tty; #include "constants.h" -#include "compiler.h" #ifdef DEBUG # include "debug.h" #endif @@ -67,7 +68,7 @@ static int force_write_to_non_tty; /* Prevent inlining into hook functions because it may increase the number of * spilled registers unnecessarily. As it's not called very often accept the * additional call. */ -static int isatty_noinline(int fd) __noinline; +static int isatty_noinline(int fd) noinline; static int isatty_noinline(int fd) { int saved_errno = errno; int result = isatty(fd); @@ -137,10 +138,10 @@ static void init_pre_post_string(void) { /* Don't inline any of the pre/post functions. Keep the hook function as small * as possible for speed reasons. */ -static void handle_fd_pre(int fd) __noinline; -static void handle_fd_post(int fd) __noinline; -static void handle_file_pre(FILE *stream) __noinline; -static void handle_file_post(FILE *stream) __noinline; +static void handle_fd_pre(int fd) noinline; +static void handle_fd_post(int fd) noinline; +static void handle_file_pre(FILE *stream) noinline; +static void handle_file_post(FILE *stream) noinline; static void handle_fd_pre(int fd) { int saved_errno = errno; diff --git a/src/compiler.h b/src/compiler.h index 9e23e23..4a69adf 100644 --- a/src/compiler.h +++ b/src/compiler.h @@ -21,14 +21,12 @@ #define COMPILER_H 1 /* Prevent/force inlining. Used to improve performance. */ -#undef __noinline -#undef __always_inline #ifdef HAVE___ATTRIBUTE__ -# define __noinline __attribute__((noinline)) -# define __always_inline __attribute__((always_inline)) +# define noinline __attribute__((noinline)) +# define always_inline __attribute__((always_inline)) #else -# define __noinline -# define __always_inline +# define noinline +# define always_inline #endif /* Branch prediction information for the compiler. */ diff --git a/src/ldpreload.h b/src/ldpreload.h index 57f923b..cc2dcee 100644 --- a/src/ldpreload.h +++ b/src/ldpreload.h @@ -30,12 +30,7 @@ #include #include -static void *dlsym_function(char const *name) -#ifdef HAVE___ATTRIBUTE__ - __attribute__((noinline)) -#endif -; - +static void *dlsym_function(char const *name) noinline; /* Load the function name using dlsym() and return it. Terminate program on * failure. Split in function and macro to reduce code inserted into the * function using the macro. */ diff --git a/src/trackfds.h b/src/trackfds.h index eddff4c..2def68c 100644 --- a/src/trackfds.h +++ b/src/trackfds.h @@ -300,7 +300,7 @@ static int tracked_fds_remove(int fd) { return 0; } -static int tracked_fds_find_slow(int fd) __noinline; +static int tracked_fds_find_slow(int fd) noinline; /* * tracked_fds_find() is called for each hook call and should be as fast as * possible. As most file descriptors are < TRACKFDS_STATIC_COUNT, force the @@ -309,7 +309,7 @@ static int tracked_fds_find_slow(int fd) __noinline; * Inlining tracked_fds_add()/tracked_fds_remove() isn't worth the effort as * they are not called often enough. */ -inline static int tracked_fds_find(int fd) __always_inline; +inline static int tracked_fds_find(int fd) always_inline; static int tracked_fds_find(int fd) { if (fd < TRACKFDS_STATIC_COUNT) { return tracked_fds[fd]; -- 2.43.2