MISRA C++:2008 Rule 6-6-1
Any label referenced by a goto statement shall be declared in the same block, or in a block enclosing the goto statement
Description
Rule Definition
Any label referenced by a goto statement shall be declared in the same block, or in a block enclosing the goto statement.1
Rationale
Using a goto statement to jump into nested blocks creates complex
control flow, which might cause developer confusion or unexpected results. To avoid
unexpected results, place the label the goto statement is referring to in
the same block or in a block that encloses the goto statement.
Polyspace Implementation
Polyspace® raises this defect when the goto destination is in a
different block than the goto statement. This defect is not raised if the
goto destination is in a block enclosing the goto
statement.
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: Statements |
| Category: Required |
Version History
Introduced in R2013b
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.