1

定義時に上記の警告を確認しましたMACROが、コードのどこにも使用されていません。しかし、場合によってはMACRO、コードでも使用されている に対してこの警告が表示されます。

マクロ - INVALIDATION_ADDR を定義し、いくつかの場所でも使用しました。ただし、同じ MISRA 警告が表示されました。この警告が表示される理由についてはわかりません。この警告を回避する方法。

ケース 1:

タイプ 'void' のグローバル マクロ 'INVALIDATION_ADDR' が参照されていません [MISRA 2012 ルール 2.5、勧告]

リントルール 755

グローバルマクロ「シンボル」(場所)は参照されていません - 「グローバル」マクロは、ヘッダーファイルで定義されたマクロです。このメッセージは、ライブラリ以外のヘッダーで定義されたマクロに対して表示されます。マクロは、プログラムを構成するどのモジュールでも使用されていません。このメッセージは、ユニット チェックアウト (-u オプション) では抑制されます。

typedef uint32 AddressType;

#define INVALIDATION_ADDRESS   (AddressType)0x12345678U

void fun1()
{
     AddressType Address;
     Address = INVALIDATION_ADDRESS;
}

ケース 2:

タイプ 'ConditionsEnumType' のグローバル typedef 'ConditionsEnumType' (行 110、ファイル ITypes.h) が参照されていない [MISRA 2012 ルール 2.3、勧告]

糸くずルール 756

グローバル typedef 'Symbol' (場所) が参照されていません -- このメッセージは、非ライブラリ ヘッダー ファイルで宣言された typedef シンボルに対して表示されます。シンボルは、プログラムを構成するどのモジュールでも使用されていません。このメッセージは、ユニット チェックアウト (-u オプション) では抑制されます。

typedef unsigned char       uint8; 
typedef uint8 StateType;

typedef enum
    {
        BLOCK      =  0x80U,
        HEADER     =  0x81U,
        DATA       =  0x82U,    
        OUTCOME    =  0x84U
    } ConditionsEnumType;

/* used in below func */ 
    void fun2()
    {
         StateType state;
         state = (StateType) BLOCK; 
    }
4

1 に答える 1