https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85921

--- Comment #4 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 25 May 2018, gcc at mailinator dot com wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85921
> 
> --- Comment #2 from John Simon <gcc at mailinator dot com> ---
> > Can you figure out who #defines noinline?
> 
> Sure. Using -E -dD pointed to "/usr/include/linux/compiler.h" which has:
> 
> ```c
> /*
>  * From the GCC manual:
>  *
>  * Many functions do not examine any values except their arguments,
>  * and have no effects except the return value.  Basically this is
>  * just slightly more strict class than the `pure' attribute above,
>  * since function is not allowed to read global memory.
>  *
>  * Note that a function that has pointer arguments and examines the
>  * data pointed to must _not_ be declared `const'.  Likewise, a
>  * function that calls a non-`const' function usually must not be
>  * `const'.  It does not make sense for a `const' function to return
>  * `void'.
>  */
> #ifndef __attribute_const__
> # define __attribute_const__    /* unimplemented */
> #endif
> 
> #ifndef noinline
> #define noinline
> #endif
> 
> #ifndef __always_inline
> #define __always_inline inline
> #endif
> ```

:/

How does that get included?

I suppose we could add an appropriate #undef to system.h after the
offending include stmt with a comment.

Reply via email to