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