当我添加
#pragma GCC diagnostic error "-Wreturn-type"
编译器会为每个缺少的return
生成警告,而不是错误。我怎样才能让它把这个特定的警告变成错误?
测试代码:
#pragma GCC diagnostic error "-Wreturn-type"
int foo(int x)
{
if (x) return 8;
}
int main(int narg, char* arg[])
{
foo(narg);
}
我试过
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
i686-apple-darwin10-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.6)
更新:我已经按照@sastraxi 的建议尝试了-Werror=return-type
,但它具有相同的效果。
最佳答案
尝试将 -Werror=return-type
传递给 gcc!
关于c++ - GCC:在 "control reaches end of non-void function"中断编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9835720/