Restricts the optimizations performed by the compiler.
is one of the following:
prevents the removal of unused functions
prevents the removal of unused inline functions
prevents the removal of unused non-inline functions
prevents path-removing optimizations, such as
a|b. This supports Modified Condition Decision Coverage (MCDC) testing.
prevents calls being removed, for example by inlining or tailcalling.
prevents calls being merged, for example by cross-jumping (that is, common tail path merging).
prevents calls to library functions being removed, for example by inline expansion.
prevents data being removed.
prevents read-only data being removed.
prevents read-write data being removed.
prevents data being reordered.
is unspecified, the compiler faults use of
This option might be useful when performing validation, debugging, and coverage testing. In most other cases, it is not required.
Using this option can have a negative effect on code size and performance.