MISRA C:2023 Rule 17.9
A function declared with a _Noreturn
function specifier shall
not return to its caller
Since R2024a
Description
Rule Definition
A function declared with a _Noreturn
function specifier
shall not return to its caller1
.
Rationale
A function declared with a _Noreturn
specifier is not supposed to return to its caller. If there is a return path from this function to its caller, it typically indicates an error in the program control flow, and results in undefined behavior.
Polyspace Implementation
The rule checker analyzes the body of a function and reports a violation if the function is declared _Noreturn
but has a return path to its caller.
This rule violation is reported only if you specify a C standard version of 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: Mandatory |
AGC Category: Mandatory |
Version History
Introduced in R2024a
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace® Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.