The attribute may be applied to the
declarator-id in a function declaration.
The first declaration of a function shall
specify the noreturn attribute if any declaration of that function specifies the
noreturn attribute.
If a function is declared with the noreturn attribute in one
translation unit and the same function is declared without the noreturn attribute in another
translation unit, the program is ill-formed, no diagnostic required.
[[ noreturn ]] void f() {
throw "error"; // OK
}
[[ noreturn ]] void q(int i) { // behavior is undefined if called with an argument <= 0 if (i > 0)
throw "positive";
}