Как принудительно вызвать анализ сайта при обнаружении мертвого кода в Полипространстве?
Я использую 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 ответ:
Можете ли вы сказать мне, есть ли main в приложении? Если нет, то Polyspace будет использовать свой главный генератор и поэтому может также вызвать f2 (это зависит от того, как настроен главный генератор). И если f2 вызывается также главным генератором, то x считается принимающим любое значение. Вы можете увидеть диапазон x, который рассматривает Polyspace, если вы посмотрите на подсказку на x или если вы нажмете на x и посмотрите на окно check details.