我們使用PCLint來分析我們的Rhapsody生成的代碼,並且希望忽略框架代碼中的錯誤,這些錯誤不是由我們編寫的。PCLint部分分析部分文件
這意味着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 ....
/*#]*/
}
這可能嗎?也許使用一些瘋狂的正則表達式的東西?
選項-save和-restore可能是解決方案的一部分。你可以例如使用-w0選項調用PC-lint以初始禁用所有警告。然後,您可以將/ * lint -save -w3 * /和/ * lint -restore * /放在您的代碼中(或者您想要使用的任何警告級別)以啓用這些部分的警告。 –