Функции, объявленные с [[noreturn]] атрибут, не должны возвращаться.
Функции, объявленные с [[noreturn]] атрибут, не должны возвращаться.
Если вы объявляете функцию при помощи [[noreturn]]
припишите, компилятор ожидает, что функция не возвращает поток выполнения. Таким образом, если [[noreturn]]
функциональный f()
называется от main()
, затем компилятор ожидает, что поток выполнения не возвращен в main()
. Если такая функция в конечном счете возвращает поток выполнения, это приводит к неопределенному поведению, которое может быть использовано, чтобы вызвать нарушения целостности данных.
Если функция не имеет никакого return
оператор, затем итоговая закрывающая фигурная скобка функции подразумевает неявный return
. Исключение return
оператор в функции не препятствует тому, чтобы поток выполнения возвратился. [[noreturn]]
функция может запретить возврат потока выполнения к функции вызова:
Ввод бесконечного цикла
Повышение исключения
Вызов другого [[noreturn]]
функция
Если функция, заданная как [[noreturn]]
возвращает поток управления в его вызывающую сторону, Polyspace® отмечает [[noreturn]]
функция.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: объявление |
Категория: необходимый, автоматизированный |