Partager via


Comment : spécifier des informations de code supplémentaire

Mise à jour : novembre 2007

Vous pouvez fournir des conseils à l'outil d'analyse du code qui aidera l'analyse à traiter et à réduire les avertissements. Pour fournir des informations supplémentaires, utilisez la fonction suivante :

__analysis_assume (expr)

expr- toute expression supposée prendre la valeur True.

L'outil d'analyse du code suppose que la condition représentée par l'expression est True lorsque la fonction apparaît et le demeure jusqu'à ce que l'expression soit altérée, par exemple, par assignation à une variable.

Remarque :

__analysis_assume n'a pas d'effet sur l'optimisation du code. À l'extérieur de l'outil d'analyse du code, __analysis_assume est défini comme une absence d'opération.

Exemple

Le code suivant utilise __analysis_assume pour corriger l'avertissement C6388 :

#include<windows.h>
#include<codeanalysis\sourceannotations.h>

using namespace vc_attributes;

// calls free and sets ch to null
void FreeAndNull(char* ch);

//requires pc to be null
void f([Pre(Null=Yes)] char* pc);

void test( )
{
  char *pc = (char*)malloc(5);
  FreeAndNull(pc);
  __analysis_assume(pc == NULL); 
  f(pc);
}

Voir aussi

Référence

__assume