2012-03-23 110 views
2

当我添加GCC:在休息汇编“控制到达非void函数结束”

#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-苹果darwin10-G ++尝试 - 4.2.1(GCC)4.2.1(苹果公司建立5666)(点3)

的i686-苹果darwin10-LLVM-G ++ - 4.2(GCC)4.2.1(基于苹果公司建立5658)(LLVM构建2335.6)

更新:我尝试了@sastraxi建议的-Werror=return-type,但它具有相同的效果。

回答

7

尝试将-Werror=return-type传递给gcc!

+0

这是正确的。但让它看起来像一个答案,而不是一个问题。 – Nawaz 2012-03-23 08:02:08

+0

只为你,纳瓦兹! :) – sastraxi 2012-03-23 08:03:40

+0

它具有相同的效果 - 一个警告,而不是一个错误。 – hamstergene 2012-03-23 08:14:14

相关问题