Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.

How to: Specify Additional Code Information

You can provide hints to the code analysis tool that will help the analysis process and reduce warnings. To provide additional information, use the following function:

__analysis_assume( expr )

expr - any expression that is assumed to evaluate to true.

The code analysis tool assumes that the condition represented by the expression is true at the point where the function appears and remains true until expression is altered, for example, by assignment to a variable.

NoteNote:

__analysis_assume does not impact code optimization. Outside the code analysis tool, __analysis_assume is defined as a no-op.

The following code uses __analysis_assume to correct the code analysis warning 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);
}

Community Additions

ADD
Show:
© 2015 Microsoft