C and C++


LANG.FUNCS.NORETURN : Use of Noreturn

Summary

A use of the _Noreturn specifier, or of features from <stdnoreturn.h>.

Properties

Class Name Use of Noreturn
Significance style
Mnemonic LANG.FUNCS.NORETURN
Categories
MisraC2023 MisraC2023:1.4 Emergent language features shall not be used
Misra2012 Misra2012:1.4 Emergent language features shall not be used
CERT-C CERT-C:MSC23-C Beware of vendor-specific library and language differences
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default, and require the unnormalized C ASTs for the project. To enable them, add the following WARNING_FILTER rule and RETAIN_UNNORMALIZED_C_AST specification to the project configuration file.
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Use of Noreturn"
Note that retaining the unnormalized ASTs will increase the disk space used to store the project representation, and may make the analysis take longer.

Example

_Noreturn void f(){ /* 'Use of Noreturn' warning issued here */
  for(;;);                   /* ('Empty for Statement' warning issued here) */
}

/* No warning because this function does not use _Noreturn, even
 * though the function still never returns.
 */
void g(){
    for(;;);                 /* ('Empty for Statement' warning issued here) */
}

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.