Функция не возвращает значение, хотя возвращаемый тип не void
Этот дефект возникает, когда функция не возвращает значение по крайней мере по одному пути выполнения. Этот дефект не возникает, если:
Тип возврата функции void
.
Путь выполнения завершается функцией, которая не возвращает поток выполнения, такой как [[noreturn]]
функция.
Если функция имеет не - void
возвращает значение в своей подписи, ожидается, что оно вернёт значение. Значение возврата этой функции может использоваться в последующих расчетах. Если выполнение тела функции проходит путь, где a return
оператор отсутствует, возвращаемое значение функции неопределенно. Расчеты с этим возвращаемым значением могут привести к непредсказуемым результатам.
В большинстве случаев можно исправить этот дефект, поместив return
оператор в конце тела функции. Если ваш код имеет пути выполнения, которые не возвращают поток выполнения, задайте их с помощью атрибута [[noreturn]]
.
Кроме того, можно идентифицировать, какие пути выполнения через тело функции не имеют return
оператор и добавление return
оператор на этих путях. Часто детали результата показывают последовательность событий, которые указывают на этот путь выполнения. Можно добавить return
оператор в соответствующей точке пути. Если сведения о результате не отображают историю событий, можно отследить их с помощью опций правого щелчка в исходном коде и просмотреть предыдущие связанные события. Смотрите также Результаты интерпретации Bug Finder в интерфейсе пользователя Polyspace Desktop.
См. примеры исправлений ниже.
Если вы не хотите устранять проблему, добавьте комментарии к своему результату или коду, чтобы избежать другой проверки. Смотрите Адрес Результаты Polyspace через исправления ошибок или обоснования.
Если анализ помечает отсутствующее return
оператор для пути, где существует функция завершения процесса, можно информировать анализ функции завершения процесса с помощью опции -termination-functions
.
Группа: Поток данных |
Язык: C | C++ |
По умолчанию: On |
Синтаксис командной строки: MISSING_RETURN |
Влияние: Низкое |