代码分析在VS 2010中不工作



我使用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;
}

我选中"Enable Code Analysis for C/c++ on Build",并选择规则集"Microsoft All Rules",当我构建项目时,我得到

1> RunCodeAnalysis:

1>运行代码分析

1>代码分析完成——0个错误,0个警告

我期望test()中粗体部分显示"CA1804"警告,对于死代码deadCode()应该显示另一个警告。

我的问题是为什么代码分析没有捕捉到缺陷?我还尝试创建只启用CA1804警告的规则集,但结果与上面相同(Microsoft All Rules)。

任何想法?

    未使用的函数不是"死代码"。想象一下,你正在编写一个库——它可能会向用户公开它自己不使用的函数。
  • 对于CA1804,我只能做出假设:大概分析不够深入,无法创建完整的控制流图,并注意到if/else块之后的代码无法到达。但即使它做了一个完整的分析,我希望if块之后的test()部分出现"死代码"警告,而不是"未使用的局部"警告-如果代码可达,将使用j

相关内容

  • 没有找到相关文章

最新更新