[clang-tools-extra] [llvm] New check `misc-header-guard` (PR #177315)

Thorsten Klein via cfe-commits cfe-commits at lists.llvm.org
Thu Feb 5 02:30:22 PST 2026


================
@@ -0,0 +1,90 @@
+.. 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`.
+
+.. option:: AllowPragmaOnce
+
+   A boolean that controls whether ``#pragma once`` directive is allowed.
+   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:
----------------
thorsten-klein wrote:

I hope the rst syntax is correct (2 spaces everywhere) 👍

https://github.com/llvm/llvm-project/pull/177315


More information about the cfe-commits mailing list