The __declspec(noinline) attribute suppresses the inlining of a function at the call points of the function.
__declspec(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. For example, an array dimension.
Note
This __declspec attribute has the function attribute equivalent
__attribute__((noinline)).
Example
/* Prevent y being used for optimization */
__declspec(noinline) const int y = 5;
/* Suppress inlining of foo() wherever foo() is called */
__declspec(noinline) int foo(void);
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers of your data.