如何解决如何抑制带有参数的GCC警告?
我想在特定文件中禁止显示警告Wstringop-overflow
,我尝试如下进行操作
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstringop-overflow"
...
#pragma GCC diagnostic pop
但这无法消除警告,该警告仍然显示为... warning: ... [-Wstringop-overflow=]
=
表示警告带有一个参数,但也有一个版本不包含该参数([-Wstringop-overflow]
),我想我正在做的事情是抑制后者,而不是前者。
我还尝试通过添加选项-Wno-stringop-overflow
来抑制该警告,但是我不确定如何仅在一个文件中执行该操作。由于Wno-stringop-overflow
不是合法标识符,因此以下操作失败:
#define Wno-stringop-overflow
我在这里做错了什么?如何在一个特定文件中禁止所有[-Wstringop-overflow=]
形式的警告?
编辑:我得到了合理的建议,以提供一个最小的可重复示例,因此,我会尽力而为。当整个构建该项目时,此警告出现在一个较大的项目中-当我分别编译该文件时,它不会出现。我也无法创建一个最小的示例来重现此特定警告。但我可以提供以下示例:
switch (true) {
default:
break;
}
这将产生警告-Wswitch-bool
(不带参数)。使用-Wall
进行编译足以使该警告出现。
我能够通过#pragma GCC diagnostic ignored "-Wswitch-bool"
禁止显示此警告,但是我的问题是:如何通过预处理器指令激活-Wno-switch-bool
以便仅在相关文件中禁止显示此警告?再次,
#define Wno-switch-bool
不起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。