MISRA C:2012 Rule 17.11
A function that never returns should be declared with a
_Noreturn
function specifier
Since R2024a
Description
Rule Definition
A function that never returns should be declared with a
_Noreturn
function specifier.
This rule comes from MISRA C™: 2012 Amendment 3.
Rationale
If a function that does not return to its caller is not declared with a _Noreturn
specifier, it is unclear whether it intentionally does not return, or does not return due to an error in the program logic.
Polyspace Implementation
The rule checker reports a violation if there are no return paths from a function to its caller but the function is not declared with a _Noreturn
specifier.
This checker reports a rule violation only if you specify the C language standard as C11 or later for the Bug Finder analysis. For more information, see C standard version (-c-version)
.
Troubleshooting
If you expect a rule violation but do not see it, refer to Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
Group: Functions |
Category: Advisory |
AGC Category: Advisory |
Version History
Introduced in R2024a