メインコンテンツ

MISRA C++:2008 Rule 6-4-8

Every switch statement shall have at least one case-clause.

説明

ルール定義

Every switch statement shall have at least one case-clause. 1

根拠

case 句が含まれない switch ステートメントは、常に default 句になります。この動作が意図的な場合、冗長な動作です。意図的ではない場合、欠落した case 句によって予期しない結果になる可能性があります。冗長にならないよう、常に少なくとも 1 つの case 句を指定してください。case 句が不要な場合は、switch ステートメントを置換または削除します。

Polyspace 実装

Polyspace® は、switch ステートメントに case 句が含まれていない場合は常に、この欠陥を報告します。

トラブルシューティング

ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

すべて展開する

#include <cstdint>

int x = 10;

int example(int x)	 
{
    switch (x) { //Noncompliant

    default:
        x = 0;
        break;
    }

    return x;
}

switch ステートメントに default 句のみが含まれ、case 句は含まれていないため、Polyspace はこれを非準拠としてマークします。

チェック情報

グループ: Statements
カテゴリ: 必要

バージョン履歴

R2013b で導入


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.