public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* macro in linux/compiler.h pollutes gcc __attribute__ namespace
@ 2005-05-04 17:35 Timmy Douglas
  2005-05-04 17:46 ` Brian Gerst
  0 siblings, 1 reply; 5+ messages in thread
From: Timmy Douglas @ 2005-05-04 17:35 UTC (permalink / raw)
  To: linux-kernel

(I'm not subscribed so please CC me replies that you want me to reply
to.)

Recently I've found a problem with emacs where gcc optimizes a
function to be inline where it shouldn't be. The emacs developers use
a macro like this:

#define NO_INLINE __attribute__((noinline))

that would normally work fine but when we compile the file with
NO_INLINE, the -E output looks like:

static void __attribute__(())
x_error_quitter (display, error)
     Display *display;
     XErrorEvent *error;
{
  char buf[256], buf1[356];

...etc


I've realized that this file includes linux/compiler.h which does:


   139
   140  #ifndef noinline
   141  #define noinline
   142  #endif
   143

which causes __atribute__((noinline)) to change into
__attribute__(()). I'm not sure how linux developers keep a function
from getting inlined, but I'm hoping someone will consider removing or
changing this macro.


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-05-05  2:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-04 17:35 macro in linux/compiler.h pollutes gcc __attribute__ namespace Timmy Douglas
2005-05-04 17:46 ` Brian Gerst
2005-05-04 18:10   ` Timmy Douglas
2005-05-04 20:55     ` Kyle Moffett
2005-05-05  2:08       ` Timmy Douglas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox