Как принудительно вызвать анализ сайта при обнаружении мертвого кода в Полипространстве?


Я использую 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);
}
Обратите внимание, что x стал параметром, но он по-прежнему имеет постоянное значение, 1. Функция f2() вызывается только с помощью call_site(), или, в качестве альтернативы, каждый узел вызова вызывает f2() с помощью x=1.

Есть ли опция конфигурации, которую я должен активировать для анализа всех сайтов вызовов при поиске недостижимого кода? Или это просто ... ограничение Polyspace?

1 2

1 ответ:

Можете ли вы сказать мне, есть ли main в приложении? Если нет, то Polyspace будет использовать свой главный генератор и поэтому может также вызвать f2 (это зависит от того, как настроен главный генератор). И если f2 вызывается также главным генератором, то x считается принимающим любое значение. Вы можете увидеть диапазон x, который рассматривает Polyspace, если вы посмотрите на подсказку на x или если вы нажмете на x и посмотрите на окно check details.