================ @@ -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 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
