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