Отключение диагностики clang-tidy

Я пытаюсь настроить clang-tidy для обеспечения соблюдения соглашений об именах в проекте C. Этот проект состоит из нескольких внешних источников и использует простую среду makefile, поэтому для создания базы данных компиляции недоступны такие инструменты, как cmake или bear.

Это также то, что я хочу: используя пользовательскую среду, я хотел бы выборочно вызывать clang-tidy для каждого файла, который должен быть проверен.

Я настраивал инструмент, в основном для проверки readability-identifier-naming. Для тестирования у меня есть файлы .c и .h, оба в одном каталоге, со следующим содержимым:

dummy.c

#include "dummy.h"
#include "MISSING_module.h"

// EOF

dummy.h

#ifndef _DUMMY_H_
#define _DUMMY_H_

#include <stdlib.h>

// EOF

Команда, которую я вызываю,

clang-tidy dummy.c -checks='-*,readability-identifier-naming' -- -DCMAKE_EXPORT_COMPILE_COMMANDS=ON`

Однако clang-tidy по-прежнему следует за #include в C-файле и проверяет существующие заголовки:

dummy.h:4:10: error: 'stdlib.h' file not found [clang-diagnostic-error]
#include <stdlib.h>
          ^
Found compiler error(s).

Есть ли способ отключить это? clang-diagnostic-error даже не включен как проверка. Или есть альтернативные инструменты, о которых я должен знать, чтобы обеспечить соблюдение соглашений об именах?


person martin    schedule 01.07.2019    source источник


Ответы (1)


Посмотрите, как вы используете clang-tidy: параметр -- используется для указания параметров компиляции.

clang-diagnostic-error не имеет ничего общего с самим clang-tidy. Это предупреждения компилятора, и вы не можете их отключить. Clang-tidy необходимо, чтобы проанализированный файл был компилируемым для создания AST, который он использует для внутренних проверок. Дополнительную информацию о clang-diagnostic-error вы найдете в документации clang-tidy.

person pablo285    schedule 08.07.2019
comment
Для меня было не совсем очевидно, что clang-tidy действительно нужно вызывать компилятор. Документация довольно короткая, поэтому ее было трудно понять, я работал с разными статическими анализаторами, которым она не нужна. В конце концов, теперь я создаю базу данных компиляции с помощью gmake и python. - person martin; 09.07.2019