parts/6.52.SuppressionOfLanguage-definedRun-timeChecking-MXB.md

6.52 Suppression of Language-defined Run-time Checking [MXB]

6.52.1 Applicability to language

With the exception of the macro assert, the vulnerability as described in ISO/IEC TR 24772-1:2019 clause 6.52 does not apply to C++, because there is no language-defined runtime checking. Macro assert is defined by the standard but is invoked by the programmer, hence is not a language-defined check by the language.

C++ libraries, however, often provide run-time checks which meet the criteria of this vulnerability. Also, compilers and other tools commonly provide means to perform such runtime checks.

A standard library implementation as well as a compiler can provide additional run-time checks, e.g., with a hardened standard library or in the form of “code sanitizers”. Having such checks in production code requires handling potential failures discovered.

6.51.2 Avoidance mechanisms for language users

To avoid the vulnerability or mitigate its ill effects, C++ software developers can apply the avoidance mechanisms of ISO/IEC 24772-1 clause 6.52.5.