使用GCC,是否可以指定一组免除-Wframe-larger-than的函数? (例如,主要。)
答案 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。