Como: Especificar informações adicionais de código usando __analysis_assume

Você pode fornecer dicas de ferramenta de análise de código para C/C++ código que irá ajudar o processo de análise e reduzir os avisos. Para fornecer informações adicionais, use a função a seguir:

__analysis_assume(expr)

expr-qualquer expressão que será adotada a ser avaliada como true.

A ferramenta de análise de código assume que a condição representada pela expressão é verdadeira no ponto onde a função aparece e permanece true até que a expressão for alterado, por exemplo, por atribuição a uma variável.

ObservaçãoObservação

__analysis_assumenão afeta a otimização de código. Fora a ferramenta de análise de código, __analysis_assume é definido como um não-operacional

Exemplo

O seguinte código usa __analysis_assume para corrigir o aviso de análise de código 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);
}

Consulte também

Referência

__assume