Проверка обеспечивает использование программистом заголовков, предоставленных компилятором (libc).
Он используется в основном командой, разрабатывающей libc llvm, чтобы избежать использования системных заголовков.
Из веб-интерфейса Phabricator проекта clang-tidy:
Это добавляет новый модуль для обеспечения соблюдения стандартов, характерных для проекта llvm-libc. Это изменение также добавляет первую проверку, которая запрещает пользователю случайно включать системные заголовки libc, что может привести к тонким ошибкам, которые будет сложно обнаружить.
И далее
[...] Я думаю, что имя чекера должно быть обобщенным, так как его не нужно связывать с llvm-libc. Другие проекты могут иметь аналогичные потребности. Например, они не хотят случайно включить системный zlib.h -> они могут отправить пакет zlib (скажем, в файле Third_Party/zlib/).
Спасибо за предложения, общая проверка звучит как отличная идея. Я вижу вариант использования для этого, поскольку его может использовать любой. Я потратил время, чтобы портировать проверку fuchsia и конкретизировать документацию, с которой сталкивается пользователь.
Вы можете исправить это, предоставив заголовки интереса (здесь заголовки libc) явно в каталоге включения вашего проекта и соответствующим образом настроив пути связывания.
Чтобы отключить его, вы можете указать нежелательную проверку в аргументах clang-tidy.
Пример CMake:
set(CMAKE_C_CLANG_TIDY
clang-tidy;
-header-filter=.*;
-checks=*,-llvmlibc-restrict-system-libc-headers;
-warnings-as-errors=*;)
Извините за неправильное понимание вашего вопроса, я обновил свой ответ.
Я знаю, как отключить произвольные проверки в Clang Tidy. Я хочу знать, что означает конкретная проверка, о которой мой вопрос, и когда я могу ее использовать / при каких обстоятельствах имеет смысл ее исправить.