C++ 当函数在gcc中没有返回时,如何强制执行错误?
当函数定义在其主体中没有返回时,是否可以强制执行错误(中断构建) 考虑这一功能:C++ 当函数在gcc中没有返回时,如何强制执行错误?,c++,gcc,compiler-errors,compilation,C++,Gcc,Compiler Errors,Compilation,当函数定义在其主体中没有返回时,是否可以强制执行错误(中断构建) 考虑这一功能: int sum(int a, int b) { int c = a + b; // and here should be return }; 当我使用g++-Wall编译时,我得到: 返回非void[-Wreturn type]的函数中没有任何return语句 但我希望这是一个严重的错误,而不是一个警告 我目前正在使用GCC 4.9.2,但是如果有一个针对不同版本的GCC的解决方案,那么了解它也会很有帮助
int sum(int a, int b) {
int c = a + b;
// and here should be return
};
当我使用g++-Wall
编译时,我得到:
返回非void[-Wreturn type
]的函数中没有任何return
语句
但我希望这是一个严重的错误,而不是一个警告
我目前正在使用GCC 4.9.2,但是如果有一个针对不同版本的GCC的解决方案,那么了解它也会很有帮助。GCC可以选择
-Werror
将所有警告转化为错误
如果只想升级特定警告,可以使用-Werror=X
,其中X
是警告类型,不带-W
前缀。在您的特定情况下,这将是-Werror=返回类型
请注意,这只会报告返回值的函数中缺少的
return
。如果您想强制执行返回代码>必须显式写入返回的函数void
,您可能运气不好。您可以使用-Werror
将警告变为错误,但我想将此视为错误,另一个警告可以忽略。-Werror=返回类型