メインコンテンツ

AUTOSAR C++14 Rule M0-1-2

A project shall not contain infeasible paths

説明

ルール定義

A project shall not contain infeasible paths

根拠

このルールは、ステートメントのグループが非構文的な理由により冗長な状況にフラグを設定します。たとえば、if 条件は常に true または false になります。構文的な理由で到達不能なコードはルール 0-1-1 によりフラグが設定されます。

到達不能または冗長なコードには不要な保守が伴い、プログラミング エラーを示すことがよくあります。

Polyspace 実装

Polyspace® Bug Finder™ は、コードにデッド コードや不要な if 条件が含まれている場合にこの違反を報告します。[デッド コード] チェッカーおよび [無意味な if] チェッカーを参照してください。

トラブルシューティング

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

すべて展開する

void func (unsigned int arg) {
 if (arg >= 0U) //Noncompliant
     arg  = 1U;
 if (arg < 0U) //Noncompliant
     arg = 1U;
}

unsigned int 型の変数は非負です。この変数を含む両方の if 条件は常に true になるか常に false になるため、冗長です。

チェック情報

グループ: 言語に依存しない問題
カテゴリ: Required、Automated

バージョン履歴

R2019a で導入