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