Я пытался написать простую программу проверки 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, что угодно и только если) , но не нашел ничего, связанного с подсчетом.