gpt4 book ai didi

clang - 如何使用 Clang 关闭 -Wgnu-zero-variadic-macro-arguments 警告?

转载 作者:行者123 更新时间:2023-12-04 14:41:24 42 4
gpt4 key购买 nike

上下文

我读过 Clang's "Controlling Diagnostics via Pragmas"关于关闭特定警告的部分。除了 -Wgnu-zero-variadic-macro-arguments 之外,它通常适用于所有警告。

代码是:

MyHeader.hpp

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"

#import "header generating -Wgnu-zero-variadic-macro-arguments warning"

#pragma clang diagnostic pop

问题

Clang 在编译导入 MyHeader.hpp 的翻译单元时生成 -Wgnu-zero-variadic-macro-arguments 警告。

环境

Clang 版本:Apple LLVM 6.0 版(clang-600.0.51)(基于 LLVM 3.5svn)目标:x86_64-apple-darwin13.4.0线程模型:posix

操作系统:Mac OS X 10.9.5

最佳答案

这似乎在 Xcode 6.4 (6E35b) 中有效。编译指示现在取消警告。

我在build设置中有 -Weverything。如果没有诊断忽略,我肯定会收到警告:

Token pasting of ',' and __VA_ARGS__ is a GNU extension

终端的输出以匹配您的 Env 部分:

$ clang --version
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.4.0
Thread model: posix

使用以下代码:

#define DEBUG
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgnu-zero-variadic-macro-arguments"
#import "Macros.h"
#pragma clang diagnostic pop

Macros.h 包含在其中:

#ifdef DEBUG
#define AssLog(condition, message, ...) NSAssert(condition, message, ##__VA_ARGS__)
#else
#define AssLog(condition, message, ...) if (!condition) NSLog((@"%@ [Line %d] " message), [NSString stringWithUTF8String:__PRETTY_FUNCTION__], __LINE__, ##__VA_ARGS__)
#endif

关于clang - 如何使用 Clang 关闭 -Wgnu-zero-variadic-macro-arguments 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26932749/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com