MISRA C:2023 Rule 16.1
R2026bAll switch statements shall be well-formed
Since R2024a
Description
All switch statements shall be well-formed1
Rationale
The syntax for switch statements in C is not particularly rigorous
and can allow complex, unstructured behavior. This rule and other
rules impose a simple consistent structure on the switch statement.
Polyspace Implementation
The rule checker shows a violation if a switch statement violates
one of the following:
The
switchstatement has adefaultlabel.Every switch clause ends with an unconditional
breakstatement.The
switchstatement has at least two switch clauses.The
defaultlabel is either the first or the last switch label of theswitchstatement.Switch labels appear at the outermost level of the
switchbody.A
breakstatement in a switch clause is the last statement of the clause.No statement appears before the first switch label.
The child statement of the
switchstatement is a compound statement.All switch clauses appear at the same level.
Switch clauses contain only switch labels and switch clauses, and no other code.
The
switchstatement contains only switch labels and switch clauses, and no other code.
Troubleshooting
If you expect a rule violation but do not see it, refer to Diagnose Why Coding Standard Violations Do Not Appear as Expected.
Check Information
| Group: Switch Statements |
| Category: Required |
| AGC Category: Advisory |
PQL Name: std.misra_c_2023.R16_1 |
Version History
Introduced in R2024a
See Also
Check MISRA C:2023
(-misra-c-2023) | MISRA C:2023 Rule
15.3 | MISRA C:2023 Rule
16.2 | MISRA C:2023 Rule
16.3 | MISRA C:2023 Rule
16.4 | MISRA C:2023 Rule
16.5 | MISRA C:2023 Rule
16.6
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:2025
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.