メインコンテンツ

MISRA C:2012 Rule 16.1

All switch statements shall be well-formed

説明

ルール定義

All switch statements shall be well-formed 1

根拠

C では switch ステートメントの構文は特に厳密ではなく、複雑で構造化されていない動作を許可しています。このルールおよび他のルールは switch ステートメントに対して単純で整合性のとれた構造を課しています。

Polyspace 実装

MISRA™ 仕様に従って、コーディング ルール チェッカーでは、switch ステートメントが次のルールのいずれかに違反する場合、ルール 16.1 の違反も報告します。16.2、16.3、16.4、16.5、または 16.6

レポート内の追加のメッセージ

レポート ファイルのすべてのメッセージは「MISRA-C switch statements syntax normative restriction (MISRA-C switch ステートメント構文標準規格)」から開始します。

  • Initializers shall not be used in switch clauses.

  • The child statement of a switch shall be a compound statement.

  • All switch clauses shall appear at the same level.

  • A switch clause shall only contain switch labels and switch clauses, and no other code.

  • A switch statement shall only contain switch labels and switch clauses, and no other code.

トラブルシューティング

ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。

チェック情報

グループ: switch ステートメント
カテゴリ: 必要
AGC カテゴリ: 推奨

バージョン履歴

すべて展開する


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.