c++ - 是否有编译器警告会在函数返回后捕获代码?

标签 c++ g++ clang++

给出这个函数:

int doThings() {
    int x = 1;
    return x;
    x + 1;
    cout << "x: " << x << '\n';
}

是否有编译器警告标志(g++ 或 clang++)可以捕获返回后的代码不会运行的事实?

更新:

用 -Wunreachable-code 运行 clang++ 就成功了

最佳答案

gcc 编译器(最高 4.4)有一个 -Wunreachable-code 选项可以捕获这个。

这不是 -Wall 组的一部分,因为在开发过程中您更有可能拥有无法访问的代码,而此时您最有可能使用 -墙.

由于与优化器不一致,它从 4.5 开始被删除。通过删除,我的意思是编译器仍然接受该标志但不对其采取行动。我相信 Clang 仍然包含该选项,因为它喜欢与 gcc 兼容。

关于c++ - 是否有编译器警告会在函数返回后捕获代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23606567/

相关文章:

c++ - 在 C++ 中如何检查指向映射的指针是否为空?

c++ - 在一个 Makefile 中编译 C++ 和 C

c++ - 浮点舍入为 80 位寄存器和 64 位 double : ill-formed code or gcc/clang bug? 提供不同的结果

c++ - 全局 const 变量的 G++ 名称修饰

c++ - 有没有办法用 clang 有效地编译已经预处理的文件?

macos - 将 Crypto++ 与 clang 一起使用

用于匹配 Windows 和 Posix 系统的日期时间的 C++ 正则表达式模式

c++ - Qt5 中的 OpenGl 实例化渲染

c++ - 编译器如何知道 move 局部变量?

c++ - 减少g++ RAM使用