C and C++


LANG.STRUCT.MNR : Missing noreturn Specifier

Summary

A function can never return, but is not declared as such with one of the following.

Properties

Class Name Missing noreturn Specifier
Significance style
Mnemonic LANG.STRUCT.MNR
Categories
MisraC2023 MisraC2023:17.11 A function that never returns should be declared with a _Noreturn function specifier
Misra2012 Misra2012:17.11 A function that never returns should be declared with a _Noreturn function specifier
Availability Available for C and C++.
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Missing noreturn Specifier"

Example

#include <stdnoreturn.h>

void my_exit(void){          /* 'Missing noreturn specifier' warning issued here */
    exit(0);
}

void my_infinite_loop(void){ /* 'Missing noreturn specifier' warning issued here */
  while (1) { 0; }
}

_Noreturn void noret_infinite_loop(void){       /* ok: has _Noreturn specifier */
  while (1) { 0; }
}

Relevant Configuration File Parameters

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