【发布时间】:2011-01-11 17:51:14
【问题描述】:
使用 GCC,是否可以指定一组不受 -Wframe-larger-than 影响的函数? (例如,main。)
【问题讨论】:
标签: c++ c gcc compiler-warnings
使用 GCC,是否可以指定一组不受 -Wframe-larger-than 影响的函数? (例如,main。)
【问题讨论】:
标签: c++ c gcc compiler-warnings
GCC 为此为您提供了编译指示:
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
【讨论】:
#pragma GCC diagnostic ignored "-Wframe-larger-than=")。虽然现在我更想要 GCC 4.6。
这有点旧,但我在寻找相同的答案时遇到了它,所以我想我会发布我的解决方案(通过反复试验找到):
#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 交叉编译器上)。
约翰
【讨论】:
您可以使用GCC diagnostic pragma。
【讨论】: