给出这个函数:
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/