Описание тега libtooling
LibTooling - это библиотека для поддержки написания автономных инструментов на основе Clang.
2
ответа
clang libTooling: Как узнать, из какого заголовка вышел элемент AST?
Примеры, найденные в Интернете для инструментов clang, всегда выполняются на игрушечных примерах, которые обычно являются действительно тривиальными программами на Си. Я создаю инструмент, который выполняет преобразования исходного кода в код C++, ч…
22 сен '14 в 01:27
0
ответов
Неустановленный шаблон функции / класса ast не генерируется clang
Я работаю над синтаксическим анализатором C/C++, основанным на clang libtooling. Я использую AST, сгенерированный clang для разбора кода. Недавно я заметил, что для шаблонного класса или функции, которая не является экземпляром Clang, не генерируетс…
26 фев '17 в 09:48
0
ответов
Может ли addToCallGraph сделать все для меня, чтобы сгенерировать граф вызовов?
Я хочу сгенерировать граф вызовов для конкретной функции в файле.cpp. Я получаю функцию decl с помощью AST Matcher. Затем я передаю decl в функцию addToCallGraph; clang::CallGraph CG; CG.addToCallGraph(std::move(function_decl)); После этого я пытаюс…
25 апр '17 в 22:26
1
ответ
Функция обработки CLang LibTooling Аргументы шаблона
Я хочу обрабатывать аргументы шаблона по-разному, так что для кода: template <class T> class A { public: A() {} }; void faa(A<int>& param); Я хотел бы знать, что param является специализацией шаблона и получить доступ к его параметра…
06 авг '15 в 16:58
2
ответа
Как правильно сопоставить #include (или #defines) с помощью libtooling Clang?
Я пишу инструмент рефакторинга libtooling. У меня есть класс, скажем Fooопределяется в заголовке foo.h, Я хочу увидеть, если foo.h включен в файл. В настоящее время, чтобы проверить, если bar.cc включает в себя foo.hЯ просто соответствую, используя …
19 ноя '14 в 23:53
2
ответа
Как получить исходное местоположение #includes, используя clang libtooling?
Есть ли способ получить clang::SourceLocation для каждого #include в файле его clang::FileID или же clang::FileEntry или что-то?
17 апр '17 в 09:09
1
ответ
Повторная обработка ASTUnit с относительными путями включения заголовка завершается неудачно
Я использую libclang's LibTooling получить данные о завершении кода из исходных файлов C++. ASTUnits генерируются из файла compile_commands.json, созданного с помощью CMake с Ninja как генератор. В командах вызова компилятора есть относительные пути…
15 июн '17 в 08:56
1
ответ
Clang libtooling: определить расположение макроса
У меня есть заголовок header.h с макроопределением, которое расширяется до определения класса и исходного файла test.cpp который включает в себя header.h и использует этот макрос. Тогда я использую RecursiveASTVisitor посетить всех CXXRecordDecl"S. …
20 сен '15 в 19:38
1
ответ
Как получить имена аргументов указателей на функции, используя clang LibTooling?
Скажем, я анализирую такой код: struct Foo { void(*setParam)(const char* name, int value); }; Я использую Clang LibTooling и получаю FieldDecl на setParam, Я подумал, что могу получить типы аргументов, например, так: auto ft = fieldDecl->getFunct…
24 дек '18 в 08:25
0
ответов
Как собрать Clang LibTooling на Mac OS?
Я хочу использовать LibTooling clang на Mac OS X Yosemite. Документы Clang показывают только, как создать clang и llvm, но мне нужен LibTooling, а не целый clang (xcode уже предоставил clang и llvm). Как собрать LibTooling, не создавая еще один лязг?
01 ноя '14 в 11:46
1
ответ
Инструмент лягушка: включить путь
Я хотел бы изменить путь включения моего инструмента лязга в соответствии с вводом. Когда я запускаю приведенный ниже код в примере тестового файла, у меня появляется ошибка компиляции "заголовок не найден". #include "clang/Frontend/FrontendActions.…
05 авг '18 в 15:44
1
ответ
Как исключить встроенную / системную функцию во время анализа функции clang libtooling
Я пытаюсь проанализировать функции с помощью Clang libtooling. Вот исходный код, который я хочу проанализировать: #include <stdio.h> int main(){ int a = 100; printf("a==%d", a); } Когда я запустил свой инструмент, чтобы получить все функции, у…
08 июл '17 в 21:47
1
ответ
Запустите ClangTool для определенных файлов, указанных в командной строке
Я работаю с Clang Libtooling. Мне нужно запустить мой clang MyFrontendAction для определенных файлов, указанных в командной строке. CommonOptionsParser OptionsParser(argc, argv, MyToolCategory); ClangTool Tool(OptionsParser.getCompilations(), Option…
07 июл '15 в 14:24
1
ответ
Clang Ast посетитель для объявления одной переменной нескольких строк
Я новичок в разработке Clang libTooling. рассмотрим следующее объявление переменной int i, j, k = 10; ^ ^ Для моего требования проекта я хочу захватить все выражение объявления, включая "i", "j" и "k". Как захватить полное выражение объявления, вклю…
27 дек '16 в 04:57
0
ответов
Извлечение вызова функции в коде AC с использованием Clang
Я хочу написать программу, которая разлагает выражения (в коде C), в которых они имеют вызовы функций, и извлекает каждый вызов функции в переменную. Например: x = A() + B(); следует изменить на: a = A(); b = B(); x = a + b; Я пишу это, используя Cl…
15 ноя '14 в 12:56
1
ответ
Добавить файл памяти в Clang CompilerInstance
Я пытаюсь создать инструмент с помощью clang, и мне было интересно, возможно ли добавить файл включения из памяти в CompilerInstance препроцессор.Моя цель - добавить #include <my_globals.hpp> в мои файлы и динамически включить этот файл с соот…
06 июл '17 в 08:31
0
ответов
Как использовать AST как для пользовательского интерфейса, так и для статического анализа
Я работаю над проектом на основе libTooling, где я написал пользовательский класс действий внешнего интерфейса, ссылаясь на это. Теперь я хочу запустить статический анализ clang в том же инструменте. В настоящее время я снова запускаю инструмент для…
07 сен '18 в 10:25
2
ответа
Как я могу использовать LibTooling/Clang в Visual Studio?
Я пытаюсь использовать LibTooling для замены имен функций и переменных в файлах C-кода. Поэтому я скачал llvm и следовал инструкциям, чтобы настроить его в Windows, используя GMake и Visual Studio 2015. Есть много руководств (например, этого), котор…
21 окт '15 в 09:28
1
ответ
Исключение при запуске пользовательского инструмента внешнего интерфейса для некоторых входных файлов.
Я написал пользовательский инструмент внешнего интерфейса Clang по следующей ссылке. http://clang.llvm.org/docs/RAVFrontendAction.html Теперь я даю исходный код Clang самому своему инструменту внешнего интерфейса для статического анализа. Мой инстру…
27 фев '17 в 06:50
0
ответов
Как использовать clang libtooling для изменения определенного определения ctor
Я просто хочу переписать конкретное определение ctor. Чтобы найти что-то, что нужно изменить, я использую "нормальный" ". DeclarationMatcher ClassMatcher2 = cxxRecordDecl(isDerivedFrom("X"), has(fieldDecl( hasType( cxxRecordDecl( isDerivedFrom("AA")…
02 дек '15 в 09:06