MISRA C:2012 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
.
This rule comes from MISRA C™: 2012 Amendment 3.
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 can result in undefined behavior.
Polyspace Implementation
The rule checker reports a violation if a function is declared with a _Noreturn
specifier but has a return path to its caller.
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: 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.