Clang libtooling: как напечатать определения макросов компилятора - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть утилита на основе LibTooling, и я хотел бы вывести список определений макросов для целей отладки. Можно распечатать определения макросов компилятора с помощью clang/gcc -dM -E -, но, похоже, это не сработает, если я передам -dM -E или -dD в ClangTool. Можно ли каким-либо образом сделать это с помощью параметров LibTooling API или CLI? Не имеет значения, будут ли в нем макросы, определенные в разобранном исходном коде.

Я рассматривал другие подобные вопросы, и, насколько я могу судить, все они касаются макросов, развернутых в разобранном источнике. код. Это не совсем то, что мне нужно.

1 Ответ

0 голосов
/ 07 мая 2020

Ответ очевиден - в ретроспективе. clang::Preprocessor::getPredefines() возвращает только это - список предопределенных компиляторов. Объект препроцессора может быть получен, например, из clang::CompilerInstance, в качестве аргумента в clang::DiagnosticConsumer::BeginSourceFile(), et c.

...