如何临时禁用GCC警告"Wstack-usage"?

5

我正尝试编译一个引入这个 BiTStream 文件 的项目。

GCC 输出以下错误:

warning: stack usage might be unbounded [-Wstack-usage=]

的确,在编译命令行(通过 CMake 生成)中,我有:

-Wstack-usage=2048

我想保留此警告以供项目的其余部分使用,但在此特定文件中禁用它。

我已经查看了GCC 警告选项GCC 诊断预处理器 并尝试了:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wswitch-enum"
#pragma GCC diagnostic ignored "-Wformat"
#pragma GCC diagnostic ignored "-Wswitch-default"
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wstack-usage"

#include <bitstream/mpeg/psi/descs_print.h>

#pragma GCC diagnostic pop

但是GCC仍然抱怨:

警告:'#pragma GCC diagnostic'种类之后的未知选项 [-Wpragmas]

#pragma GCC diagnostic warning "-Wstack-usage"

请注意,其他警告已正确禁用。

Wstack-usage有特定的语法吗?

1个回答

7

提示信息已经包含了答案:

警告:堆栈使用可能不受限制[-Wstack-usage=]

因此,你需要使用的#pragma指令是:

#pragma GCC diagnostic ignored "-Wstack-usage="

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接