Вопросы по теме 'libtooling'

CXXRecords getNameAsString, как получить полное имя?
namespace A { namespace B { class C { class D { }; }; } } CXXRecords для D с getNameAsString вернет D . Как я могу получить полное имя ::A::B::C::D ? Я попытался рекурсивно...
560 просмотров
schedule 13.07.2022

Почему clang создает эти неявные методы, когда класс содержит виртуальный метод?
Я работаю над инструментом, основанным на AST clang, и мне любопытно узнать, почему clang работает таким образом. Вот мой вклад. У меня есть очень простой класс, который определяется следующим образом: class Foo { int foo(); }; Затем...
220 просмотров

Как я могу использовать LibTooling/Clang в Visual Studio?
Я пытаюсь использовать LibTooling для замены имен функций и переменных в файлах C-кода. Поэтому я скачал llvm и, следуя инструкциям, установил его в Windows с помощью GMake и Visual Studio 2015. Существует множество руководств (например, этот ),...
2246 просмотров

Получите полное имя аргумента шаблона шаблона с помощью libtooling
Я пытаюсь использовать libtooling для печати CXXRecordDecl обоснования класса шаблона с параметром шаблона шаблона. К сожалению, строковое представление параметра шаблона шаблона не является полным (например, отсутствуют пространства имен). Я...
1221 просмотров
schedule 14.07.2023

clang: пользовательские атрибуты не отображаются в AST
я реализовал пользовательский атрибут в clang, как описано в официальном руководстве: http://clang.llvm.org/docs/InternalsManual.html#how-to-add-an-attribute Поэтому я добавил следующий код в Attr.td: def MyAttr: InheritableAttr { let...
2399 просмотров

Как запустить LibTool?
В настоящее время я тестировал свой инструмент с clang-llvm, установленным на машине, на которой я его разрабатываю. Все, что мне нужно сделать, это войти в build/bin , чтобы запустить мой инструмент. Однако теперь я хочу попробовать запустить...
208 просмотров

Получение подписи FunctionDecl
Я получил FunctionDecl для определения функции. Для этой функции нет объявления. Например: int foo(char c, double d) { ... } Как получить подпись (квалификатор, тип возвращаемого значения, имя функции, параметры) в качестве...
993 просмотров
schedule 25.08.2022

инструмент clang: включить путь
Я хотел бы изменить путь включения моего инструмента clang в соответствии с вводом. Когда я запускаю приведенный ниже код в образце тестового файла, у меня возникает ошибка компиляции «заголовок не найден». #include...
741 просмотров
schedule 08.08.2022

Clang: как получить имя макроса, используемое для размера объявления массива постоянного размера
TL;DR; Как получить имя макроса, используемое для размера объявления массива постоянного размера, из callExpr -> arg_0 -> DeclRefExpr. Подробное описание проблемы: Недавно я начал работать над задачей, которая требует инструмента...
723 просмотров

Можно ли как-то найти расположение всех макросов?
Я хочу найти все места расширения макроса, чтобы заменить определение макроса. Я не знаю, какой API я могу использовать для получения местоположения расширения макроса. #include <stdio.h> #define NUM 5 int main(void) { int i; int j =...
36 просмотров
schedule 25.01.2023

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