Я сделал инструмент для модификации исходного кода C / C ++ с помощью Clang Libtooling. При запуске моего инструмента в тестовых программах я столкнулся со следующей ошибкой.

fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

Но я бы хотел, чтобы инструмент игнорировал этот предел, выводил все ошибки и выполнял модификацию AST как обычно. Есть ли способ решить эту проблему с помощью Clang Libtooling?

1
lkarus 6 Окт 2020 в 14:15

1 ответ

Лучший ответ

Благодаря @dratenik я решил проблему, добавив ArgumentAdjuster, который передает Clang параметр -ferror-limit=0.

clang::tooling::ClangTool tool(compileDb, filename);
tool.appendArgumentsAdjuster(clang::tooling::getInsertArgumentAdjuster(
    "-ferror-limit=0"));
tool.run(...);
0
lkarus 8 Окт 2020 в 05:42