__attribute__((noinline)) function attribute
This attribute suppresses the inlining of a function at the call points of the function.
__attribute__((noinline)) can also be applied to
constant data, to prevent the compiler from using the value for optimization
purposes, without affecting its placement in the object. This is a feature that can
be used for patchable constants, that is, data that is later patched to a different
value. It is an error to try to use such constants in a context where a constant
value is required.
/* Prevent y being used for optimization */ const int y = 5 __attribute__((noinline)); /* Suppress inlining of foo() wherever foo() is called */ int foo(void) __attribute__((noinline));