メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

CWE Rule 1071

Empty code block

R2023a 以降

説明

ルール定義

The source code contains a block that does not contain any code, i.e., the block is empty.

Polyspace 実装

このルール チェッカーは、問題 "空のコード ブロック" をチェックします。

すべて展開する

問題

コード ブロックにコードが含まれていないと、"空のコード ブロック" が発生します。

リスク

実装を完了していない場合や、誤ってコードを削除した場合は、意図せずにコード ブロックが空になることがあります。意図的でないコードの欠落により、エラーまたは予期しない結果につながる可能性があります。

修正方法

可能であれば、空のコード ブロックを削除します。誤ってコードを削除したか、実装が完了していないことにより、意図せずにコード ブロックが空になっている場合、欠落しているコードまたは削除したコードを入力します。空のコード ブロックを削除することも、欠落したコードを実装することもできない場合は、そのコード ブロックを空の命令で置き換えるという方法で対処できます。以下に例を示します。

while (true)
;

例 — 空のコード ブロック

この例では、内側の for ループ コード ブロックが空になっています。この例は、開発者がおそらく内側のループに追加しようとしていた加算を、誤って外側のループに追加したプログラミング エラーを示しています。

int addAllElements(int *arr, int xSize, int ySize) {
    int sum = 0, i, j;
    for (i = 0; i < xSize; i++) {
        sum += *(arr + i * xSize + i);
        for (j = 0; j < ySize; j++) { //Noncompliant
            
        }
    }
    return sum;
}
修正 — 欠落しているコードを追加

この例では、外側のブロックから内側のブロックに演算を移動することによって問題を修正できます。

int addAllElements(int *arr, int xSize, int ySize) {
    int sum = 0, i, j;
    for (i = 0; i < xSize; i++) {
        for (j = 0; j < ySize; j++) { //Compliant
           sum += *(arr + i * xSize + i);
        }
    }
    return sum;
}

チェック情報

カテゴリ: Bad Coding Practices

バージョン履歴

R2023a で導入