具有 noreturn 属性的函数返回类型只应为 void
8.35 ID_unsuitableReturnType
返回类型不是 void 说明函数有返回值,与 noreturn 属性矛盾。
示例:
_Noreturn int foo(); // Non-compliant in C
[[noreturn]] int bar(); // Non-compliant in C++
例中函数的返回类型为 int,与 noreturn 属性矛盾,也会对函数的使用者造成困扰。
应改为:
_Noreturn void foo(); // Compliant in C
[[noreturn]] void bar(); // Compliant in C++
相关
依据
ISO/IEC 9899:2011 6.7.4(8 12)-undefined
ISO/IEC 14882:2011 7.6.3(2)-undefined