在Polyspace中查找死代码时,如何强制调用站点分析?

在Polyspace中查找死代码时,如何强制调用站点分析?,c,static-analysis,unreachable-code,C,Static Analysis,Unreachable Code,我使用Polyspace IHME-8.1.0.12(R2011a)在我的项目中查找死代码。目前,分析抓住了这个案例: int f1() { int x = 1; if (x > 0) return 1; else return 0; // dead code } int f2(int x) { if (x > 0) return 1; else return 0; // the very same dead code! } void call_site()

我使用Polyspace IHME-8.1.0.12(R2011a)在我的项目中查找死代码。目前,分析抓住了这个案例:

int f1() {
  int x = 1;
  if (x > 0) return 1;
  else return 0;  // dead code
}
int f2(int x) {
  if (x > 0) return 1;
  else return 0;  // the very same dead code!
}
void call_site() {
  f2(1);
}
但不是这种情况:

int f1() {
  int x = 1;
  if (x > 0) return 1;
  else return 0;  // dead code
}
int f2(int x) {
  if (x > 0) return 1;
  else return 0;  // the very same dead code!
}
void call_site() {
  f2(1);
}
请注意,
x
变成了一个参数,但它仍然有一个常量值,
1
。函数
f2()
仅由
call\u site()
调用,或者,每个调用站点使用
x=1
调用
f2()


在查找无法访问的代码时,是否有一个配置选项我应该激活以分析所有呼叫站点?或者这是Polyspace的一个限制?

您能告诉我应用程序中是否有main吗? 如果没有,则Polyspace将使用其主生成器,因此也可以调用f2(这取决于主生成器的配置)。 如果主生成器也调用f2,则认为x取任何值。
如果您查看x上的工具提示,或者单击x并查看“检查详细信息”窗口,您可以看到Polyspace考虑的x范围。

我有一个
main()
函数,但我也有中断处理程序,因此我使用
-main generator
。我将
-在循环中调用的函数
设置为
未使用的
,希望我的问题会消失。我已经在我的项目中检查了这一点,现在检测到所有已知的死代码案例。感谢您的回答,也感谢@Sourav对我的问题的帮助(他删除了他的评论,但这些评论确实很有帮助)。@Dmitrygrioryev我很高兴它有帮助。:-)