[clang-tools-extra] [llvm] New check `misc-header-guard` (PR #177315)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Jan 22 08:10:41 PST 2026
================
@@ -0,0 +1,92 @@
+.. title:: clang-tidy - llvm-header-guard
+
+misc-header-guard
+=================
+
+Finds and fixes header guards.
+
+Options
+-------
+
+.. option:: HeaderDirs
+
+ A semicolon-separated list of one or more header directory names.
+ Header directories may contain `/` as path separator.
+ The list is searched for the first matching string.
+ The header guard will start from this path component.
+ Default value is `include`.
+
+.. option:: Prefix
+
+ A string specifying an optional prefix that is applied to each header guard.
+ Default is an empty string.
+
+.. option:: EndifComment
+
+ A boolean that controls whether the endif namespace comment is suggested.
+ Default value is `false`.
+
+Examples
+--------
+
+Header file: ``/path/to/include/component/header.hpp``:
+
+By default, the check ensures following header guard:
+
+.. code-block:: c++
+
+ #ifndef COMPONENT_HEADER_HPP
+ #define COMPONENT_HEADER_HPP
+ ...
+ # endif
+
+E.g. :option:`HeaderDirs` is set to following values:
+
+- `component`
+- `include/component`
+- `component;include`
+
+.. code-block:: c++
+
+ #ifndef HEADER_HPP
+ #define HEADER_HPP
+ ...
+ # endif
+
+E.g. :option:`HeaderDirs` is set to one of the following values:
+
+- `component`
+- `include/component`
+- `component;include`
+
+.. code-block:: c++
+
+ #ifndef HEADER_HPP
+ #define HEADER_HPP
+ ...
+ # endif
+
+.. warning::
+ The .:option:`HeaderDirs` list is searched until first directory name matches
+ the header file path. If `HeaderDirs` is set to `include;component`, the
+ check will result in default behavior (since `include` is found first).
+
+
+E.g. :option:`Prefix` is set to `MY_OWN_PREFIX_`:
+
+.. code-block:: c++
+
+ #ifndef MY_OWN_PREFIX_COMPONENT_HEADER_HPP
+ #define MY_OWN_PREFIX_COMPONENT_HEADER_HPP
+ ...
+ # endif
+
+E.g. :option:`EndifComment` is set to `true`:
+
+.. code-block:: c++
+
+ #ifndef COMPONENT_HEADER_HPP
+ #define COMPONENT_HEADER_HPP
+ ...
+ # endif // COMPONENT_HEADER_HPP
+
----------------
EugeneZelenko wrote:
```suggestion
```
https://github.com/llvm/llvm-project/pull/177315
More information about the cfe-commits
mailing list