PCLint проанализировать некоторые файлы частично

Мы используем PCLint для анализа нашего кода, сгенерированного Rhapsody, и хотели бы игнорировать ошибки из кода платформы, который не написан нами.

Это означает, что PCLint должен анализировать некоторые файлы, частично используя аннотации, сгенерированные Rhapsody. Например, все три функции ниже расположены в одном и том же исходном файле.

Эта функция полностью генерируется автоматически и должна игнорироваться.

static void initStatechart(SomeClass* const me) {
    me->rootState_subState = SomeClass_RiCNonState;
    me->rootState_active = SomeClass_RiCNonState;
}

В этой функции мы пишем только часть с тегом "Наш код здесь" и должны быть проанализированы PCLint.

static void rootState_entDef(void * const void_me) {
    SomeClass * const me = (SomeClass *)void_me;
    {
        me->rootState_subState = SomeClass_InitState;
        me->rootState_active = SomeClass_InitState;
        {
            /*#[ state InitState.(Entry) */

            ..... Our code is here ....

            /*#]*/
        }
        RiCReactive_schedTm(&(me->ric_reactive), 1000, SomeClass_Timeout_InitState_id);
    }
}

Эта функция полностью написана нами и должна быть проанализирована.

/*## operation someFunction() */
static void someFunction(SomeClass* const me) {
    /*#[ operation someFunction() */
    .... This function is fully written by us ....
    /*#]*/
}

Является ли это возможным? Может быть, вы используете сумасшедшие регулярные выражения?

2 ответа

Вы пытались загрузить профиль MISRA? Затем Rhapsody по крайней мере сгенерирует заявления, которые PC-Lint использует для игнорирования нарушений правил MISRA.

Вальтер

Код, написанный вами, прост. Вам просто нужно убедиться, что файл проверен. Предупреждения PC-Lint в функциях автоматического генерирования могут быть подавлены с помощью -esym(#,sym) подавляет сообщение # для символа sym -efunc(#,funcname) подавляет сообщение #, исходящее из функции funcname В вашем случае это будет -efunc( 960, *::initStatechart) для подавления предупреждения 960 для всех функций initStatechart в вашем проекте.

Сложная часть - смешанный код. Там вы должны работать с -save и -restore, как уже упоминалось. Вам нужно найти нужные свойства или вставить команду в ваш код.

Другие вопросы по тегам