由于Xcode(clang)分析器报告的问题实例,是否有可能抑制?

时间:2018-08-31 17:24:02

标签: c xcode static-analysis clang-static-analyzer

我的用例如下。在对我的一个库的自动测试中,我使用mktemp函数来获取文件名以创建一个临时文件。 Xcode正确地抱怨这是一种安全风险,但是在这种情况下,我没有选择(必须遵循需求文件名的API),并且我愿意承担风险,因为该代码只是测试代码,而不是实际服务中的代码。 (因此,安全风险不适用。)

我想我可以创建自己的测试本地化版本的mktemp,但我不希望不编写已经编写的内容。

所以我想知道是否有一种方法可以告诉分析仪停止抱怨该问题实例?请注意,这与Is it possible to suppress Xcode 4 static analyzer warnings?中提出的问题不同,这不是误报,并且我不想禁止分析文件或此检查的所有实例。我只想抑制这个实例。 (即类似于Cppcheck中的cppcheck-抑制注释的内容)

1 个答案:

答案 0 :(得分:0)

@JonathanLeffler的最后评论是绝对正确的,当我阅读所引用的问题时,我不知道我如何错过它。以下代码段完全符合我的要求-在此mktemp实例中抑制了分析器警告,同时对于所有其他将使用mktemp的实例保持激活状态。

#if defined(__clang_analyzer__)
   char* filename = "/tmp/somename";
#else
   char* filename = mktemp("/tmp/prefixXXXX");
#endif