メインコンテンツ

AUTOSAR C++14 Rule M0-1-3

A project shall not contain unused variables

説明

このチェッカーは、既定の Polyspace® as You Code 解析では非アクティブにされますPolyspace as You Code 解析で非アクティブにされるチェッカー (Polyspace Access)を参照してください

ルール定義

A project shall not contain unused variables

根拠

使用されていない変数の存在は、ソース コードで誤った変数名が使用されている可能性があることを示します。これらの変数を削除すると、以降の開発で誤った変数が使用される可能性が低くなります。プロジェクト内の未使用の変数を減らすには、ビットフィールドのパディング ビットを無名のままにします。

Polyspace 実装

宣言または定義されているが、プロジェクトのどのソース ファイルでも読み取りまたは書き込みされない、ローカル変数またはグローバル変数にチェッカーはフラグを設定します。この仕様は、構造体のメンバーおよびクラスのメンバーにも適用されます。

トラブルシューティング

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

すべて展開する

#include <iostream>
struct S {
    unsigned char b1 : 3;
    unsigned char pad: 1;  //Noncompliant
    unsigned char b2 : 4;
};
void init(struct S S_obj)
{
    S_obj.b1 = 0;
    S_obj.b2 = 0;
}

この例では、ビット フィールド pad が構造体のパディングに使用されています。そのため、このフィールドは一切読み取りも書き込みも行われず、このルールに違反しています。違反を回避するには、パディングに名前なしフィールドを使用します。


#include <iostream>
struct S {
    unsigned char b1 : 3;
    unsigned char : 1;  //Compliant
    unsigned char b2 : 4;
};
void init(struct S S_obj)
{
    S_obj.b1 = 0;
    S_obj.b2 = 0;
}

チェック情報

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

バージョン履歴

R2019a で導入