使用属性抑制 Coverity 中的消息?

Suppress messages in Coverity using attributes?

我们正在使用 Coverity 分析我们的 C# 代码是否存在缺陷。

我们有一些单元测试可以明确验证是否正确处理了空参数。

这些被 Coverity 列为缺陷。如果这是 Microsoft 自己的代码分析,我们可以用 [SuppressMessage(...)] 标记我们执行 null 传递的方法,是否有类似的东西可用于 Coverity?

我们不想将代码混淆到足以混淆 Coverity 的地步。

下面是一段存在此缺陷的示例代码:

[Test]
public void SomeRandomTest()
{
    var obj = new SomeRandomObject();
    Assert.Throws<ArgumentNullException>(() => obj.Method(null));
}

...

public class SomeRandomObject
{
    public void Method(object value)
    {
        if (value == null) throw new ArgumentNullException(nameof(value));
        ...
    }
}

显式错误显示为

Explicit null dereferenced (FORWARD_NULL)
var_deref_model: Passing null to Method, which throws an exception after checking for null.

this site 中的示例为例,您可以在报告的错误行上方使用注释来抑制这些消息,但在您的情况下,您将使用 var_deref_model 标记。例如:

// coverity[var_deref_model]