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=返回类型