Nous utilisons PCLint pour analyser notre code généré par Rhapsody et aimerions ignorer les erreurs du code du framework, qui n'est pas écrit par nous. Cela signifie que PCLint doit analyser certains fichiers en utilisant partiellement les annotations générées par Rhapsody. Par exemple, toutes les trois fonctions ci-dessous se trouvent dans le même fichier source.PCLint analyser certains fichiers en partie
Cette fonction est entièrement générée automatiquement et doit être ignorée.
static void initStatechart(SomeClass* const me) {
me->rootState_subState = SomeClass_RiCNonState;
me->rootState_active = SomeClass_RiCNonState;
}
Dans cette fonction, seule la partie taggés avec « Notre code est ici » est écrit par nous et doivent être analysés par 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);
}
}
Cette fonction est entièrement écrite par nous et doit être analysée.
/*## operation someFunction() */
static void someFunction(SomeClass* const me) {
/*#[ operation someFunction() */
.... This function is fully written by us ....
/*#]*/
}
Est-ce possible? Peut-être utiliser des trucs de regex?
Les options -save et -restore font probablement partie de la solution. Vous pourriez, par exemple, Appelez PC-lint avec l'option -w0 pour désactiver tous les avertissements. Vous pouvez ensuite mettre/* lint -save -w3 */et/* lint -restore */autour de votre code (ou quel que soit le niveau d'avertissement que vous souhaitez utiliser) pour activer les avertissements pour ces parties. –