Como: especificar informações de código adicionais usando __analysis_assume
Você pode fornecer dicas para a ferramenta de análise de código para código C/C++ 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 pressupõe 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ção |
---|
__analysis_assumenão afeta a otimização de código.Fora a ferramenta de análise de código, __analysis_assume é definido como 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);
}