C and C++


LANG.STRUCT.SW.IF : case節が少ないswitch文

要旨

switch 文内に2つ未満の switch 節しかありません。

このクラスは 正しく記述されていないswitch文 の部分集合となります。

switch 文が下記の複数のワーニングを含む場合、 その部分集合のみが表示される可能性があります。

プロパティ

クラス名 Too Few Cases in switch
日本語クラス名 case節が少ないswitch文
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.SW.IF
カテゴリー
MisraC2023 MisraC2023:16.6 Every switch statement shall have at least two switch-clauses
Misra2012 Misra2012:16.6 Every switch statement shall have at least two switch-clauses
Misra2004 Misra2004:15.5 Every switch statement shall have at least one case clause
AUTOSARC++14 AUTOSARC++14:A6-4-1 A switch statement shall have at least two case-clauses, distinct from the default label.
MisraC++2008 MisraC++2008:6-4-8 Every switch statement shall have at least one case-clause.
JSF++ JSF++:196 Every switch statement will have at least two cases and a potential default.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Too Few Cases in switch"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

int lang_struct_sw_if(int i){
    int a = 0;

    switch (i){}               /* 'Too Few Cases in switch' warning issued here
                                * ('Empty switch Statement' also issued because body is empty)
                                */

    switch (i){                /* 'Too Few Cases in switch' warning issued here */
        case 1: {a++; break;}
    }

    switch (i){                /* 'Too Few Cases in switch' warning issued here
                                * ('Empty switch Statement' also issued because all cases share the same code)
                                */
        default:{ a++; break;}
    }
 
    switch (i){                                      /* contains two clauses */
        case 1: {a +=3; break;}
        default: {a++; break;}
    }

    return a;
}

関連のある設定ファイルパラメータ

設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。