条件が常に false であるために非アクティブにされたコード
#if 0
命令または if(0)
条件によって非アクティブにされたコード セグメント
説明
この欠陥は、コードのブロックが #if 0
命令または if(0)
条件を使用して非アクティブにされた場合に発生します。
リスク
#if 0
命令または if(0)
条件を使用して、コードのセグメントを一時的に非アクティブにしています。量産コードにこれらの命令が含まれている場合、コードをリリースする前に非アクティブ化が解除されていないことを意味します。
修正方法
コードのセグメントがデバッグのみを目的としている場合、量産コードからそのセグメントを削除します。非アクティブ化が意図せず発生した場合は、#if 0
ステートメントと #endif
ステートメントを削除します。
多くの場合、コードのセグメントは特定のオペレーティング システムなど特定の条件で非アクティブ化されます。これらの条件を示すには、#if 0
命令を使用してコードを完全に非アクティブ化するのではなく、#if
命令を含むマクロを使用します。たとえば、GCC では、Windows® オペレーティング システムを検出するマクロが用意されています。
#ifdef _WIN32 //Code deactivated for all operating systems //Other than 32-bit Windows #endif
問題を修正しない場合は、改めてレビューされないように結果またはコードにコメントを追加します。詳細は、以下を参照してください。
Polyspace ユーザー インターフェイスでのバグ修正または正当化による結果への対処 (Polyspace ユーザー インターフェイスで結果をレビューする場合)
Polyspace Access でのバグ修正または正当化による結果への対処 (Polyspace Access) (Web ブラウザーで結果をレビューする場合)。
コードへの注釈付けと既知の結果または許容可能な結果の非表示 (IDE で結果をレビューする場合)
例
結果情報
グループ: データ フロー |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: DEACTIVATED_CODE |
影響度: Low |
バージョン履歴
R2013b で導入