MISRA C:2023 Rule 16.3
An unconditional break statement shall terminate every switch-clause
R2024a 以降
説明
ルール定義
An unconditional break statement shall terminate every switch-clause 1
根拠
"switch 句" は少なくとも 1 つのステートメントを含む case です。ステートメントが間に入らない 2 つの連続したラベルは MISRA™ に準拠しています。
switch 句を break ステートメントで終了しない場合、制御フローは次のステートメントに移動します。次のステートメントとして考えられるのは、別の switch 句または switch の終了です。この動作は意図的な場合もありますが、多くの場合はエラーです。後から case を追加する場合に、未終了の switch 句が問題を起こす可能性があります。
Polyspace 実装
Polyspace® は準拠していない case 句ごとに警告を発行します。
トラブルシューティング
ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。
チェック情報
| グループ: switch ステートメント |
| カテゴリ: 必要 |
| AGC カテゴリ: 推奨 |
バージョン履歴
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.