メインコンテンツ

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.