clang-tools 19.0.0git
Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
clang::tidy::performance::NoexceptFunctionBaseCheck Class Referenceabstract

Generic check which checks if the bound function decl is marked with noexcept or noexcept(expr) where expr evaluates to false. More...

#include <NoexceptFunctionBaseCheck.h>

Inheritance diagram for clang::tidy::performance::NoexceptFunctionBaseCheck:
Inheritance graph
[legend]

Public Member Functions

 NoexceptFunctionBaseCheck (StringRef Name, ClangTidyContext *Context)
 
bool isLanguageVersionSupported (const LangOptions &LangOpts) const override
 Override this to disable registering matchers and PP callbacks if an invalid language version is being used.
 
void check (const ast_matchers::MatchFinder::MatchResult &Result) final override
 ClangTidyChecks that register ASTMatchers should do the actual work in here.
 
std::optional< TraversalKind > getCheckTraversalKind () const override
 
- Public Member Functions inherited from clang::tidy::ClangTidyCheck
 ClangTidyCheck (StringRef CheckName, ClangTidyContext *Context)
 Initializes the check with CheckName and Context.
 
virtual bool isLanguageVersionSupported (const LangOptions &LangOpts) const
 Override this to disable registering matchers and PP callbacks if an invalid language version is being used.
 
virtual void registerPPCallbacks (const SourceManager &SM, Preprocessor *PP, Preprocessor *ModuleExpanderPP)
 Override this to register PPCallbacks in the preprocessor.
 
virtual void registerMatchers (ast_matchers::MatchFinder *Finder)
 Override this to register AST matchers with Finder.
 
virtual void check (const ast_matchers::MatchFinder::MatchResult &Result)
 ClangTidyChecks that register ASTMatchers should do the actual work in here.
 
DiagnosticBuilder diag (SourceLocation Loc, StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning)
 Add a diagnostic with the check's name.
 
DiagnosticBuilder diag (StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning)
 Add a diagnostic with the check's name.
 
DiagnosticBuilder configurationDiag (StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning) const
 Adds a diagnostic to report errors in the check's configuration.
 
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.
 

Protected Member Functions

virtual DiagnosticBuilder reportMissingNoexcept (const FunctionDecl *FuncDecl)=0
 
virtual void reportNoexceptEvaluatedToFalse (const FunctionDecl *FuncDecl, const Expr *NoexceptExpr)=0
 
- Protected Member Functions inherited from clang::tidy::ClangTidyCheck
StringRef getCurrentMainFile () const
 Returns the main file name of the current translation unit.
 
const LangOptions & getLangOpts () const
 Returns the language options from the context.
 
bool areDiagsSelfContained () const
 Returns true when the check is run in a use case when only 1 fix will be applied at a time.
 
StringRef getID () const override
 

Static Protected Attributes

static constexpr StringRef BindFuncDeclName = "FuncDecl"
 

Additional Inherited Members

- Protected Attributes inherited from clang::tidy::ClangTidyCheck
OptionsView Options
 

Detailed Description

Generic check which checks if the bound function decl is marked with noexcept or noexcept(expr) where expr evaluates to false.

Definition at line 22 of file NoexceptFunctionBaseCheck.h.

Constructor & Destructor Documentation

◆ NoexceptFunctionBaseCheck()

clang::tidy::performance::NoexceptFunctionBaseCheck::NoexceptFunctionBaseCheck ( StringRef  Name,
ClangTidyContext Context 
)
inline

Definition at line 24 of file NoexceptFunctionBaseCheck.h.

Member Function Documentation

◆ check()

void clang::tidy::performance::NoexceptFunctionBaseCheck::check ( const ast_matchers::MatchFinder::MatchResult &  Result)
finaloverridevirtual

◆ getCheckTraversalKind()

std::optional< TraversalKind > clang::tidy::performance::NoexceptFunctionBaseCheck::getCheckTraversalKind ( ) const
inlineoverride

Definition at line 32 of file NoexceptFunctionBaseCheck.h.

◆ isLanguageVersionSupported()

bool clang::tidy::performance::NoexceptFunctionBaseCheck::isLanguageVersionSupported ( const LangOptions &  LangOpts) const
inlineoverridevirtual

Override this to disable registering matchers and PP callbacks if an invalid language version is being used.

For example if a check is examining overloaded functions then this should be overridden to return false when the CPlusPlus flag is not set in LangOpts.

Reimplemented from clang::tidy::ClangTidyCheck.

Definition at line 27 of file NoexceptFunctionBaseCheck.h.

◆ reportMissingNoexcept()

virtual DiagnosticBuilder clang::tidy::performance::NoexceptFunctionBaseCheck::reportMissingNoexcept ( const FunctionDecl *  FuncDecl)
protectedpure virtual

Referenced by check().

◆ reportNoexceptEvaluatedToFalse()

virtual void clang::tidy::performance::NoexceptFunctionBaseCheck::reportNoexceptEvaluatedToFalse ( const FunctionDecl *  FuncDecl,
const Expr *  NoexceptExpr 
)
protectedpure virtual

Referenced by check().

Member Data Documentation

◆ BindFuncDeclName

constexpr StringRef clang::tidy::performance::NoexceptFunctionBaseCheck::BindFuncDeclName = "FuncDecl"
staticconstexprprotected

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