是否可以抑制 Xcode (clang) 分析器报告的问题实例?
Is it possible to suppress since instances of issues reported by the Xcode (clang) analyzer?
我的用例如下。在我的一个库的自动测试中,我使用 mktemp 函数来获取文件名以创建临时文件。 Xcode 正确地抱怨这是一个安全风险,但在这种情况下我别无选择(API 我必须遵循要求文件名)并且我愿意承担风险,因为代码只是测试代码而不是实际服务。 (因此安全风险不适用。)
我想我可以创建我自己的测试本地 mktemp 版本,但我不想写已经写过的东西。
所以我想知道是否有一种方法可以告诉分析器停止抱怨这个问题实例?请注意,这与 Is it possible to suppress Xcode 4 static analyzer warnings? 中提出的问题不同,因为这不是误报,我不想禁止分析文件或此检查的所有实例。我只想压制这一个实例。 (即类似于 Cppcheck 中的 cppcheck-suppress 注释)
@JonathanLeffler 最后的评论是绝对正确的,我不知道当我阅读我引用的问题时我是怎么错过它的。以下代码段完全符合我的要求 - 它抑制了此 mktemp 实例中的分析器警告,同时使其对所有其他将使用 mktemp 的实例保持活动状态。
#if defined(__clang_analyzer__)
char* filename = "/tmp/somename";
#else
char* filename = mktemp("/tmp/prefixXXXX");
#endif
我的用例如下。在我的一个库的自动测试中,我使用 mktemp 函数来获取文件名以创建临时文件。 Xcode 正确地抱怨这是一个安全风险,但在这种情况下我别无选择(API 我必须遵循要求文件名)并且我愿意承担风险,因为代码只是测试代码而不是实际服务。 (因此安全风险不适用。)
我想我可以创建我自己的测试本地 mktemp 版本,但我不想写已经写过的东西。
所以我想知道是否有一种方法可以告诉分析器停止抱怨这个问题实例?请注意,这与 Is it possible to suppress Xcode 4 static analyzer warnings? 中提出的问题不同,因为这不是误报,我不想禁止分析文件或此检查的所有实例。我只想压制这一个实例。 (即类似于 Cppcheck 中的 cppcheck-suppress 注释)
@JonathanLeffler 最后的评论是绝对正确的,我不知道当我阅读我引用的问题时我是怎么错过它的。以下代码段完全符合我的要求 - 它抑制了此 mktemp 实例中的分析器警告,同时使其对所有其他将使用 mktemp 的实例保持活动状态。
#if defined(__clang_analyzer__)
char* filename = "/tmp/somename";
#else
char* filename = mktemp("/tmp/prefixXXXX");
#endif