Вопросы по теме 'clang-ast-matchers'

Clang AST Matchers: как найти вызовы идеально пересылаемой функции, вызываемой с помощью rvalue?
Учитывая шаблон функции, такой как: template <typename T> void function(T &&t) { /*...*/ } как мне найти вызовы функции, которые передают значения rvalue: function(1); // MATCH int i; function(i); // SKIP int foo();...
1485 просмотров

Как найти узлы BlockDecl в Clang AST с помощью AST Matcher?
Мне нужно найти ссылки на себя в блоках (задача C). И я использую для этого Clang AST Matchers. Сопоставитель для поиска всех ссылок на себя, которые я создал, приведен ниже: declRefExpr(to(varDecl(hasName("self"))) Теперь мне нужно...
266 просмотров

В плагине clang, как вы видите, была ли ошибка при компиляции модуля перевода?
Я хочу, чтобы мой плагин clang на самом деле ничего не делал, если произошла ошибка компиляции кода для AST, на котором будет работать мой плагин. Однако я не могу понять, какой объект содержит список ошибок, сгенерированных во время компиляции....
67 просмотров

Clang AST Matcher: нет CXXMethodDecl для `operator()`?
У меня есть следующее определение struct в файле: template <class... EventArgs> struct banana { template <class... Args> void operator()(Args&&... args) const { _f(std::forward<Args>(args)...); }...
174 просмотров
schedule 26.07.2022

Clang AST Matchers: как сопоставить захваченные лямбда-переменные?
Как я могу сопоставить переменные в лямбда-выражении, которые определены вне лямбда-выражения и захвачены по ссылке? Проблема, которую я пытаюсь решить: у меня есть система транзакций базы данных, код которой выглядит примерно так:...
280 просмотров

Включить только синтаксический анализ в clang
Я пытаюсь реализовать инструмент clang, который выполняет синтаксический анализ с использованием ASTMatcher API. Я пытаюсь выяснить, как указать дополнительные флаги для clang, чтобы отключить семантические проверки. Я знаю, что clang создает...
119 просмотров

Clang AST Matchers: возможен ли фильтр на основе количества?
Я пытался написать простую программу проверки clang-tidy, которая будет проверять наличие конструктора, вызывающего fopen() более одного раза. Для этого я пытался сопоставить конструктор с более чем одним вызовом fopen() . Мое намерение состоит в...
137 просмотров

Сопоставление переменных аргументов шаблона с помощью AST Matcher
У меня есть следующий пример кода. template<class T, class... Args> T add(T first, Args... rest) { return first + add(rest...); } int add(int a, int b) { return a + b; } Когда я запускаю его через clang-check -ast-dump , я...
59 просмотров