1

我正在尝试编写一个简单的 clang-tidy 检查器,它将检查fopen()多次调用的构造函数。为此,我试图将构造函数与多个fopen()调用相匹配。我的目的是发现潜在的内存泄漏,以防第二次fopen()调用中发生任何异常。

class Dummy_File
{
  FILE *f1_, *f2_;

  public:
    Dummy_File(const char* f1, const char* f2, const char * mode)
    {
        f1_ = fopen(f1, mode);
        f2_ = fopen(f2, mode);
    }
};

使用这个

match cxxConstructorDecl(hasDescendant(callExpr(callee(functionDecl(hasName("fopen")))))).bind("x")

我能够找到构造函数fopen。但我想找到一个以上的构造函数fopen。我想知道是否可以根据计数进行过滤?

我检查了逻辑缩小匹配器(allOf、anyOf、anything 和 unless),但没有找到与计数相关的任何内容。

4

0 回答 0