Instructions Pragma pour Analyse du code machine
Instructions Pragma pour Analyse du code machine
L'auteur du code source peut utiliser des instructions Pragma pour décider si le code doit être inclus dans l'analyse.
Les listes de blocage, elles, permettent d'exclure des éléments une fois l'analyse exécutée. L'effet obtenu est identique.
Avec des instructions Pragma, vous pouvez :
omarquer les éléments du code source (fonctions, programmes, blocs fonction, variables, etc.) à ignorer lors de l'analyse du code (cas d'utilisation 1) ;
omarquer les éléments du code source qui seront filtrés dans les résultats du Tableau des conventions/Tableau des mesures ou dans la Vue de dépendance (cas d'utilisation 2).
Voir également le chapitre BlockList.
Le code qui ne doit pas être analysé peut être marqué à l'aide de l'instruction Pragma ignore. Les éléments ainsi marqués ne sont pas inclus dans le modèle de données d'analyse.
Attribut |
Description |
---|---|
{attribute 'code_analyzer' := 'ignore'} |
oMarque un POU ou une variable à ignorer. oFonctionne en mode récursif (par exemple, les variables du POU ou les méthodes d'un bloc fonction sont également ignorées). oPriorité maximale (comparé à l'attribut 'public_only'). |
attribute 'code_analyzer' := 'public_only'} |
oMarque un POU pour tenir compte uniquement des éléments publics (VarIn, VarOut, VarInOut, propriétés publiques, méthodes publiques). Les autres éléments sont ignorés. oFonctionne en mode récursif (par exemple, les méthodes d'un bloc fonction sont traitées comme le bloc fonction). |
Le code non modifiable qui apparaît dans les résultats associés aux conventions et/ou aux métriques peut être marqué afin d'être masqué dans ces listes.
Attribut |
Description |
---|---|
{attribute 'code_analysis_ui' := 'filter_in_results'} |
oMarque un POU ou une variable comme étant à filtrer dans les résultats (Tableau des conventions, Tableau des mesures et Vue de dépendance). oFonctionne en mode non récursif. |
{attribute 'code_analysis_ui' := 'filter_in_conventions'} |
oMarque un POU ou une variable comme étant à filtrer dans les résultats du Tableau des conventions (via l'interface utilisateur ou l'API de création de scripts). oFonctionne en mode non récursif. |
{attribute 'code_analysis_ui' := 'filter_in_metrics'} |
oMarque un POU ou une variable comme étant à filtrer dans les résultats du Tableau des mesures (via l'interface utilisateur ou l'API de création de scripts). oFonctionne en mode non récursif. |
{attribute 'code_analysis_ui' := 'filter_in_dependency_view'} |
oMarque un POU ou une variable comme étant à filtrer dans la Vue de dépendance (boîte de dialogue Sélectionner et ajouter). oFonctionne en mode non récursif. |
Ignorer une variable publique
METHOD PUBLIC PublicMethod
VAR_INPUT
{attribute 'code_analyzer' := 'ignore'}
i_iPublicButIgnoredVar: INT;
i_iPublicVar2: INT;
END_VAR
VAR
iPrivateVar2: INT;
END_VAR
Tenir compte des éléments publics uniquement
{attribute 'code_analyzer' := 'public_only'}
FUNCTION_BLOCK FB_PublicOnlyTest1
VAR_INPUT
i_iPublicVar: INT;
END_VAR
VAR
iPrivateVar: INT;
END_VAR
Filtrer (un POU) dans les résultats
{attribute 'code_analysis_ui' := 'filter_in_results'}
PROGRAM SR_FilterInResultsTest1
VAR
END_VAR
Filtrer (une variable) dans les résultats associés aux métriques et/ou aux conventions
PROGRAM SR_FilterVars
VAR
{attribute 'code_analysis_ui' := 'filter_in_metrics'}
iTestVar1: INT;
{attribute 'code_analysis_ui' := 'filter_in_results'}
iTestVar2: INT;
{attribute 'code_analysis_ui' := 'filter_in_conventions'}
FAILED_iTestVar3: INT;
END_VAR