exponenta event banner

MISRA C:2012 Правило 2.4

Проект не должен содержать неиспользуемые объявления тегов

Описание

Эта проверка деактивируется в анализе Polyspace ® по умолчанию в качестве кода. См. раздел Шашки, деактивированные в Polyspace как анализ кода по умолчанию (Polyspace Bug Finder Access).

Определение правила

Проект не должен содержать неиспользуемые объявления тегов.

Объяснение

Если тег объявлен, но не используется, проверяющий не знает, является ли тег избыточным или не используется по ошибке.

Дополнительное сообщение в отчете

Проект не должен содержать неиспользуемые объявления тегов: tag_name не используется.

Поиск неисправностей

Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.

Примеры

развернуть все

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_t появляется только в typedef из record1_t. В остальной части единицы перевода, тип record1_t используется. Поэтому правило нарушается.

Проверить информацию

Группа: Неиспользуемый код
Категория: Консультационные услуги
Категория СМЖЛ: удобочитаемость
Представлен в R2014b