Выполните один или несколько из следующих шагов до тех пор, пока вы не определите исправление для проверки Function not reachable. Существует несколько способов исправить эту проверку. Для получения описания примеров проверки и кода смотрите Function not reachable
.
Если вы определяете, что чек представляет защитный код, добавьте комментарий и обоснование в свой результат или код, объясняющие, почему вы не изменили код. Смотрите Адрес Результаты Polyspace через исправления ошибок или обоснования.
Примечание
Эта проверка по умолчанию не включена. Чтобы включить эту проверку, необходимо задать соответствующую опцию анализа. Для получения дополнительной информации смотрите Detect uncalled functions (-uncalled-function-checks)
.
Выберите проверку на панели Results List. На панели Source можно увидеть функцию, определение в сером цвете.
Определите, где вызывается функция, и проверьте, почему все узлы вызова функции недоступны. В Polyspace можно выполнить следующие шаги® только пользовательский интерфейс.
Выберите проверку на панели Results List.
На панели Result Details нажмите кнопку.
На панели Call Hierarchy отображаются вызывающие абоненты функции, обозначенной как.
На панели Call Hierarchy выберите каждого вызывающего абонента.
Это действие приводит вас к вызову функции на панели Source.
Проверьте, вызывается ли сам вызывающий абонент из недоступного кода. Если определение вызывающего абонента полностью серым цветом на панели Source, он вызывается из недоступного кода. Следуйте тому же процессу расследования, начиная с шага 1, для вызывающего абонента.
В противном случае исследуйте, почему раздел кода, из которого вы вызываете функцию, недоступен.
Код может оказаться недоступным, потому что он следует красной проверке или потому, что он содержит серую проверку Unreachable code.
Если происходит красный чек, исправьте код, чтобы удалить чек.
Если происходит серая проверка Unreachable code, проверьте проверку и определите, необходимо ли исправить код. См. Раздел «Просмотр и исправление недоступных проверок кода».
Примечание
Если вы не видите имя вызывающего абонента на панели Call Hierarchy, определите, вызываете ли вы функцию косвенно, например, через указатель на функцию. Определите, происходит ли несоответствие между объявлением указателя на функцию и вызовом функции через указатель.
Polyspace помещает красный или оранжевый Correctness condition проверки на косвенный вызов, если происходит несоответствие. Чтобы обнаружить несоответствие в косвенных вызовах функций, проверьте Correctness condition на панели Results List. Для получения дополнительной информации смотрите Correctness condition
.