С libclang, как я могу включать и отключать определенные предупреждения?

Я пытаюсь использовать libclang API для программного анализа проекта C ++. У меня нормально компилируется clang, и мой инструмент правильно анализирует сгенерированный AST, но я не могу понять, как включить / выключить определенные предупреждения.

Вот соответствующий фрагмент кода, я хотел бы включить / отключить предупреждение «неиспользуемая переменная»:

        clang::DiagnosticOptions mDiagnosticOptions;
mDiagnosticOptions.ShowOptionNames      = 1; // prints warning, ie [-Wextra-tokens]
mDiagnosticOptions.Warnings.push_back("unused-variable"); // <----- DOESN'T WORK

// use mDiagnosticOptions further down for compile steps etc.
.
.
.

0

Решение

Ваш фрагмент кода не является частью libclang API (clang-c/Index.h). Если вы используете libclang, то вы получите единицу перевода с помощью вызова

CXTranslationUnit clang_parseTranslationUnit(
CXIndex CIdx,
const char *source_filename,
const char * const *command_line_args,
int num_command_line_args,
struct CXUnsavedFile *unsaved_files,
unsigned num_unsaved_files,
unsigned options);

Вы можете отключить предупреждения через command_line_args аргумент, например,

const char* const command_line_args[] = { "-Wall", "-Wno-unused-variable" };
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]