当函数在gcc中没有返回时如何强制执行错误?

时间:2017-03-13 09:28:10

标签: c++ gcc compiler-errors compilation

当函数定义在其体内没有返回时,是否可以强制执行错误(打破构建)?

考虑这个功能:

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的解决方案也会有所帮助。

1 个答案:

答案 0 :(得分:10)

GCC可以选择-Werror将所有警告变为错误。

如果您只想升级特定警告,可以使用-Werror=X,其中X是警告类型,不带-W前缀。在您的特定情况下,这将是-Werror=return-type

请注意,这只会在返回值的函数中报告缺少return。如果您想强制return;必须在返回void的函数中明确写入,那么您可能会运气不佳。