llvmlibc-restrict-system-libc-headers¶
查找在 llvm-libc 实现中未由编译器提供的系统 libc 头文件包含。
#include <stdio.h> // Not allowed because it is part of system libc.
#include <stddef.h> // Allowed because it is provided by the compiler.
#include "internal/stdio.h" // Allowed because it is NOT part of system libc.
此检查是必要的,因为意外包含系统 libc 头文件会导致难以发现的微妙错误。例如,考虑一个系统 libc,其 dirent
结构的字段顺序略微不同于 llvm-libc。虽然这将成功编译,但由于它们在 ABI 上不兼容,因此可能会在运行时导致问题。
选项¶
- Includes¶
一个包含允许的包含文件名的逗号分隔的 glob 列表的字符串。类似于运行 clang-tidy 本身的 -checks glob 列表,两个通配符是 * 和 -,分别用于包含和排除 glob。默认值为 -*,它不允许所有包含。
这可以用来允许已知的安全包含,例如 Linux 开发头文件。有关更多详细信息,请参见 portability-restrict-system-includes。