定義時に上記の警告を確認しました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;
}