我正在尝试编写一个简单的 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),但没有找到与计数相关的任何内容。