当函数定义在其体内没有返回时,是否可以强制执行错误(打破构建)?
考虑这个功能:
int sum(int a, int b) {
int c = a + b;
// and here should be return
};
当我使用g++ -Wall
进行编译时,我得到:
函数中的no
return
语句返回非void [-Wreturn-type
]
但我希望这是一个很难的错误,而不是警告。
我目前正在使用GCC 4.9.2,但如果有不同版本的GCC的解决方案也会有所帮助。
答案 0 :(得分:10)
GCC可以选择-Werror
将所有警告变为错误。
如果您只想升级特定警告,可以使用-Werror=X
,其中X
是警告类型,不带-W
前缀。在您的特定情况下,这将是-Werror=return-type
。
请注意,这只会在返回值的函数中报告缺少return
。如果您想强制return;
必须在返回void
的函数中明确写入,那么您可能会运气不佳。