The noinline Function Attribute

Function attribute noinline prevents the function to which it is applied from being inlined, regardless if the function is declared inline or non-inline. The attribute takes precedence over inlining compiler options, the inline keyword, and the always_inline function attribute. The language feature is an orthogonal extension to C89, C99, Standard C++ and C++98, and has been implemented to facilitate porting programs developed with GNU C and C++.

The syntax is shown in the following diagram.

>>-__attribute__--((--+-noinline-----+--))---------------------><
                      '-__noinline__-'
 
 

Other than preventing inlining, the attribute does not remove the semantics of inline functions.

Related References

IBM Copyright 2003