使用GCC,我可以禁用-Wframe - 大于每个功能吗?

时间:2011-01-11 17:51:15

标签: c++ c gcc compiler-warnings

使用GCC,是否可以指定一组免除-Wframe-larger-than的函数? (例如,主要。)

3 个答案:

答案 0 :(得分:10)

GCC为此提供了pragma:

http://gcc.gnu.org/onlinedocs/gcc-4.5.2/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

目前它不会完全按照您的要求执行,因为它似乎是逐个文件地执行,但在下一版本的gcc(4.6)中,它看起来好像是上下文感知的:

http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html#Diagnostic-Pragmas

答案 1 :(得分:1)

这有点老了,但我遇到了它寻找相同的答案,所以我想我会发布我的解决方案(通过反复试验找到):

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wframe-larger-than="

void func() 
{ int x[2000] = {}; printf("%d",x[1]); }    

#pragma GCC diagnostic pop

似乎有效。出于某种原因,尝试使用diagnostic warning不起作用。似乎无法更改生成警告的堆栈大小。另外,你最后需要=。也许下一个人会找到这个并节省一些时间:)。这是4.6.2(在ARM交叉编译器上)。

约翰

答案 2 :(得分:0)

您可以使用GCC diagnostic pragma