MISRA C++:2023 Rule 21.10.2
Description
Rule Definition
The standard header file <csetjmp>
shall not be
used. 1
Rationale
The header <csetjmp>
provides the setjmp()
and longjmp()
functions, which can bypass the normal function return. Use
of either function can result in undefined or unspecified behavior. For example, destructors
for objects with automatic storage duration created after setjmp()
and
before longjmp()
are not called when longjmp()
jumps
back to the state saved by setjmp()
. This results in a resource
leak.
Polyspace Implementation
Polyspace® reports a violation on any use of the setjmp()
and
longjmp()
functions.
Troubleshooting
If you expect a rule violation but Polyspace does not report it, see Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Examples
Check Information
Group: Language support library |
Category: Required |
Version History
Introduced in R2024b
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.