C and C++


LANG.STRUCT.NOELSE : 最後のelse節の欠如

要旨

else if 節を持つ if 文の 最後に else 節が存在しません。

プロパティ

クラス名 Missing Final else
日本語クラス名 最後のelse節の欠如
クラス分類 スタイル (style)
ニーモニック LANG.STRUCT.NOELSE
カテゴリー
MisraC2023 MisraC2023:15.7 All if ... else if constructs shall be terminated with an else statement
Misra2012 Misra2012:15.7 All if ... else if constructs shall be terminated with an else statement
Misra2004 Misra2004:14.10 All if . else if constructs shall be terminated with an else clause
AUTOSARC++14 AUTOSARC++14:M6-4-2 All if ... else if constructs shall be terminated with an else clause.
MisraC++2008 MisraC++2008:6-4-2 All if ... else if constructs shall be terminated with an else clause.
MisraC++2023 MisraC++2023:9.4.1 All if ... else if constructs shall be terminated with an else statement
JSF++ JSF++:192 All if, else if constructs will contain either a final else clause or a comment indicating why a final else clause is not necessary.
対応言語 C および C++ で利用可能です。
有効/無効設定 このワーニングクラスのチェックはデフォルトで無効になっており、プロジェクトには非正規の C向けAST が必要になります。有効にするにはプロジェクト設定ファイル (configuration file) に以下の WARNING_FILTER ルールと RETAIN_UNNORMALIZED_C_AST 設定を追加してください。
RETAIN_UNNORMALIZED_C_AST = Yes
WARNING_FILTER += allow class="Missing Final else"
注:非正規化された AST を継続して使用した場合、使用ディスク容量が増加し解析時間が長くなる可能性があります。

int lang_struct_noelse(int i, int j){
    if (i==0)
        return 1;
    else if (i < 0) /* 'Missing Final Else' warning issued here */
        return 5;

    if (j==0)
        return 1;               /* ok: no ELSE IF clauses */

    return 6;
}

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

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