メインコンテンツ

MISRA C:2023 Rule 2.4

A project should not contain unused tag declarations

R2024a 以降

説明

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

ルール定義

A project should not contain unused tag declarations 1 .

根拠

タグが宣言されているが使用されない場合、レビュー担当者はタグが冗長なのか手違いで使用されていないのかわかりません。

トラブルシューティング

ルール違反を想定していてもその違反が表示されない場合、コーディング規約違反が想定どおりに表示されない理由の診断を参照します。

すべて展開する

void unusedTag ( void )
{
    enum state1 { S_init, S_run, S_sleep };	/* Non-compliant  */			
}

void usedTag ( void )
{
    enum state2 { S_init, S_run, S_sleep };	/* Compliant  */			
    enum state2 my_State = S_init;
}

この例では、関数 unusedTag でタグ state1 が定義されていますが、使用されていません。したがって、ルール違反となります。

typedef struct record_t		/* Non-compliant  */	
{
    unsigned short key;
    unsigned short val;
} record1_t;


typedef struct			   /* Compliant */						
{
    unsigned short key;
    unsigned short val;
} record2_t;

record1_t myRecord1_t;
record2_t myRecord2_t;

この例では、タグ record_trecord1_ttypedef のみに表示されます。翻訳単位の残りの部分では、record1_t 型が使用されています。したがって、ルール違反となります。

チェック情報

グループ: 未使用コード
カテゴリ: 推奨
AGC カテゴリ: Readability

バージョン履歴

R2024a で導入


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.