clang-tools  6.0.0svn
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:
Inheritance graph
[legend]
Collaboration diagram for clang::tidy::utils::HeaderGuardCheck:
Collaboration graph
[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:

Definition at line 27 of file HeaderGuard.h.

Constructor & Destructor Documentation

◆ HeaderGuardCheck()

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

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)
overridevirtual

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: