c++ - 当函数在 GCC 中没有任何返回值时,如何强制执行错误?

标签 c++ gcc compiler-errors compilation

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

考虑这个函数:

int sum(int a, int b) {
  int c = a + b;
  // And here should be return
};

当我用 g++ -Wall 编译时,我得到:

no return statement in function returning non-void [-Wreturn-type]

但我希望这是一个硬错误而不是警告。

我目前使用的是 GCC 4.9.2,但如果有针对不同版本 GCC 的解决方案,了解一下也会很有帮助。

最佳答案

GCC 有选项 -Werror将所有警告变成错误。

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

请注意,这只会在返回值的函数中报告缺少的 return。如果你想强制 return; 必须显式地写在返回 void 的函数中,你可能运气不好。

关于c++ - 当函数在 GCC 中没有任何返回值时,如何强制执行错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42760220/

相关文章:

java - HashSet 编译错误

objective-c - 使用点语法的编译器错误 "setter method needed"-- setter 已定义

c++ - 关闭按钮仅适用于 Qt 中的某些选项卡

c++ - 如何转发声明内部类?

c++ - 为什么虚方法不允许返回void指针?

c++ - 如何使用 Boost 在 $PATH 中查找 exe

gcc - ARM 的 gcc 代码源上的 memcpy

c++ Allegro 5 - 内存泄漏(valgrind)

c - fgets 内部是如何工作的?

compiler-errors - TransformClassesWithNewClassShrinker失败