clang-tools 6.0.0

Public Member Functions | List of all members
clang::tidy::utils::HeaderGuardCheck Class Referenceabstract

Finds and fixes header guards. More...

`#include <HeaderGuard.h>`

Inheritance diagram for clang::tidy::utils::HeaderGuardCheck:
[legend]
Collaboration diagram for clang::tidy::utils::HeaderGuardCheck:
[legend]

## Public Member Functions
| HeaderGuardCheck (StringRef Name, ClangTidyContext *Context)
void | registerPPCallbacks (CompilerInstance &Compiler) override
| Override this to register `PPCallbacks` with `Compiler`. More...
virtual bool | shouldSuggestEndifComment (StringRef Filename)
| Returns `true` if the check should suggest inserting a trailing comment on the `#endif` of the header guard. More...
virtual bool | shouldFixHeaderGuard (StringRef Filename)
| Returns `true` if the check should suggest changing an existing header guard to the string returned by `HeaderGuardCheck::getHeaderGuard`. More...
virtual bool | shouldSuggestToAddHeaderGuard (StringRef Filename)
| Returns `true` if the check should add a header guard to the file if it has none. More...
virtual std::string | formatEndIf (StringRef HeaderGuard)
| Returns a replacement for the `#endif` line with a comment mentioning `HeaderGuard`. More...
virtual std::string | getHeaderGuard (StringRef Filename, StringRef OldGuard=StringRef())=0
| Gets the canonical header guard for a file. More...
Public Member Functions inherited from clang::tidy::ClangTidyCheck
| ClangTidyCheck (StringRef CheckName, ClangTidyContext *Context)
| Initializes the check with `CheckName` and `Context`. More...
virtual void | registerMatchers (ast_matchers::MatchFinder *Finder)
| Override this to register AST matchers with `Finder`. More...
virtual void | check (const ast_matchers::MatchFinder::MatchResult &Result)
| `ClangTidyChecks` that register ASTMatchers should do the actual work in here. More...
DiagnosticBuilder | diag (SourceLocation Loc, StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning)
| Add a diagnostic with the check's name. More...
virtual void | storeOptions (ClangTidyOptions::OptionMap &Options)
| Should store all options supported by this check with their current values or default values for options that haven't been overridden. More...

## Additional Inherited Members
Protected Member Functions inherited from clang::tidy::ClangTidyCheck
StringRef | getCurrentMainFile () const
| Returns the main file name of the current translation unit. More...
LangOptions | getLangOpts () const
| Returns the language options from the context. More...
Protected Attributes inherited from clang::tidy::ClangTidyCheck
OptionsView | Options

## Detailed Description

Finds and fixes header guards.

The check supports these options:

- `HeaderFileExtensions`: a comma-separated list of filename extensions of header files (The filename extension should not contain "." prefix). ",h,hh,hpp,hxx" by default. For extension-less header files, using an empty string or leaving an empty string between "," if there are other filename extensions.

Definition at line 27 of file HeaderGuard.h.

## Constructor & Destructor Documentation

## ◆ HeaderGuardCheck()

clang::tidy::utils::HeaderGuardCheck::HeaderGuardCheck | ( | StringRef | Name,
|  | ClangTidyContext * | Context
| ) |  |
| inline

Definition at line 29 of file HeaderGuard.h.

References Filename, formatEndIf(), getHeaderGuard(), clang::tidy::utils::parseHeaderFileExtensions(), registerPPCallbacks(), shouldFixHeaderGuard(), shouldSuggestEndifComment(), and shouldSuggestToAddHeaderGuard().

## Member Function Documentation

## ◆ formatEndIf()

std::string clang::tidy::utils::HeaderGuardCheck::formatEndIf | ( | StringRef | HeaderGuard | ) |
| virtual

Returns a replacement for the `#endif` line with a comment mentioning `HeaderGuard`.

The replacement should start with `endif`.

Definition at line 286 of file HeaderGuard.cpp.

Referenced by HeaderGuardCheck().

## ◆ getHeaderGuard()

virtual std::string clang::tidy::utils::HeaderGuardCheck::getHeaderGuard | ( | StringRef | Filename,
|  | StringRef | OldGuard = `StringRef()`
| ) |  |
| pure virtual

Gets the canonical header guard for a file.

Implemented in clang::tidy::llvm::LLVMHeaderGuardCheck.

Referenced by HeaderGuardCheck().

## ◆ registerPPCallbacks()

void clang::tidy::utils::HeaderGuardCheck::registerPPCallbacks | ( | CompilerInstance & | Compiler | ) |
| override virtual

Override this to register `PPCallbacks` with `Compiler`.

This should be used for clang-tidy checks that analyze preprocessor- dependent properties, e.g. the order of include directives.

Reimplemented from clang::tidy::ClangTidyCheck.

Definition at line 270 of file HeaderGuard.cpp.

Referenced by HeaderGuardCheck().

## ◆ shouldFixHeaderGuard()

bool clang::tidy::utils::HeaderGuardCheck::shouldFixHeaderGuard | ( | StringRef | Filename | ) |
| virtual

Returns `true` if the check should suggest changing an existing header guard to the string returned by `HeaderGuardCheck::getHeaderGuard`.

Definition at line 280 of file HeaderGuard.cpp.

Referenced by HeaderGuardCheck().

## ◆ shouldSuggestEndifComment()

bool clang::tidy::utils::HeaderGuardCheck::shouldSuggestEndifComment | ( | StringRef | Filename | ) |
| virtual

Returns `true` if the check should suggest inserting a trailing comment on the `#endif` of the header guard.

It will use the same name as returned by `HeaderGuardCheck::getHeaderGuard`.

Reimplemented in clang::tidy::llvm::LLVMHeaderGuardCheck.

Definition at line 276 of file HeaderGuard.cpp.

References clang::tidy::utils::isHeaderFileExtension().

Referenced by HeaderGuardCheck().

## ◆ shouldSuggestToAddHeaderGuard()

bool clang::tidy::utils::HeaderGuardCheck::shouldSuggestToAddHeaderGuard | ( | StringRef | Filename | ) |
| virtual

Returns `true` if the check should add a header guard to the file if it has none.

Definition at line 282 of file HeaderGuard.cpp.

References clang::tidy::utils::isHeaderFileExtension().

Referenced by HeaderGuardCheck().

The documentation for this class was generated from the following files:

- HeaderGuard.h
- HeaderGuard.cpp