以下のようにVS2010を使用してコンソールアプリを作成しました
int test(int i)
{
if ( i == 0 )
return 0;
else
return 1;
int j = 2;
j++;
return j;
}
void deadCode(char * pa)
{
printf("%s", pa);
}
int _tmain(int argc, _TCHAR* argv[])
{
test(2);
return 0;
}
「ビルド時に C/C++ のコード分析を有効にする」にチェックを入れ、ルール セット「Microsoft All Rules」を選択すると、プロジェクトをビルドしたときに、
1>コード分析の実行:
1> コード分析を実行しています...
1> コード分析完了 -- 0 エラー、0 警告
test() の太字部分に "CA1804" という警告が表示されると予想していましたが、deadCode() のデッド コードには別の警告が表示されるはずです。
私の質問は、コード分析が欠陥を検出しなかったのはなぜですか? また、CA1804 警告のみを有効にするルール セットを作成しようとしましたが、結果は上記 (Microsoft All Rules) と同じです。
何か案は?