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.
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