方法: __analysis_assume を使用して追加のコード情報を指定する
分析処理に役立つと共に警告数の減少にもつながるヒントを C/C++ コードのコード分析ツールに渡すことができます。追加の情報を指定するには、次の関数を使用します。
__analysis_assume(expr)
expr - 真であると仮定される式を指定します。
コード分析ツールは、この式で表される条件が関数の出現時点で真であり、変数への代入などによって式が変更されるまで真のままであると仮定します。
[!メモ]
__analysis_assume はコードの最適化には影響しません。コード分析ツールの外部に __analysis_assume を定義した場合は、何も実行されません。
使用例
__analysis_assume を使用してコード分析の警告 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);
}