clang-tools 22.0.0git
|
Classes | |
class | AvoidEndlCheck |
ClangTidyCheck Checks to flag for uses of 'std::endl' on streams and suggests using the newline character '"\n"' instead. More... | |
class | EnumSizeCheck |
Finds enum type definitions that could use smaller integral type as a base. More... | |
class | FasterStringFindCheck |
Optimize calls to std::string::find() and friends when the needle passed is a single character string literal. More... | |
class | ForRangeCopyCheck |
A check that detects copied loop variables and suggests using const references. More... | |
class | ImplicitConversionInLoopCheck |
class | InefficientAlgorithmCheck |
Warns on inefficient use of STL algorithms on associative containers. More... | |
class | InefficientStringConcatenationCheck |
This check is to warn about the performance overhead arising from concatenating strings, using the operator+, instead of operator+=. More... | |
class | InefficientVectorOperationCheck |
Finds possible inefficient std::vector operations (e.g. More... | |
class | MoveConstArgCheck |
Find casts of calculation results to bigger type. More... | |
class | MoveConstructorInitCheck |
The check flags user-defined move constructors that have a ctor-initializer initializing a member or base class through a copy constructor instead of a move constructor. More... | |
class | NoAutomaticMoveCheck |
Finds local variables that cannot be automatically moved due to constness. More... | |
class | NoexceptDestructorCheck |
The check flags destructors not marked with noexcept or marked with noexcept(expr) where expr evaluates to false (but is not a false literal itself). More... | |
class | NoexceptFunctionBaseCheck |
Generic check which checks if the bound function decl is marked with noexcept or noexcept(expr) where expr evaluates to false. More... | |
class | NoexceptMoveConstructorCheck |
The check flags user-defined move constructors and assignment operators not marked with noexcept or marked with noexcept(expr) where expr evaluates to false (but is not a false literal itself). More... | |
class | NoexceptSwapCheck |
The check flags swap functions not marked with noexcept or marked with noexcept(expr) where expr evaluates to false (but is not a false literal itself). More... | |
class | NoIntToPtrCheck |
Diagnoses every integer to pointer cast. More... | |
class | PerformanceModule |
class | TriviallyDestructibleCheck |
A check that finds classes that would be trivial if not for the defaulted destructors declared out-of-line: struct A: TrivialClass { ~A(); TrivialClass trivial_fields; }; A::~A() = default;. More... | |
class | TypePromotionInMathFnCheck |
Finds calls to C math library functions with implicit float to double promotions. More... | |
class | UnnecessaryCopyInitialization |
class | UnnecessaryValueParamCheck |
A check that flags value parameters of expensive to copy types that can safely be converted to const references. More... |
Functions | |
static bool | isReferenced (const VarDecl &LoopVar, const Stmt &Stmt, ASTContext &Context) |
static bool | isNonTrivialImplicitCast (const Stmt *ST) |
static bool | areTypesCompatible (QualType Left, QualType Right) |
static void | replaceCallWithArg (const CallExpr *Call, DiagnosticBuilder &Diag, const SourceManager &SM, const LangOptions &LangOpts) |
static bool | isRValueReferenceParam (const Expr *Invocation, const QualType *InvocationParmType, const Expr *Arg) |
static ClangTidyModuleRegistry::Add< PerformanceModule > | X ("performance-module", "Adds performance checks.") |
static void | recordFixes (const VarDecl &Var, ASTContext &Context, DiagnosticBuilder &Diagnostic) |
static std::optional< SourceLocation > | firstLocAfterNewLine (SourceLocation Loc, SourceManager &SM) |
static void | recordRemoval (const DeclStmt &Stmt, ASTContext &Context, DiagnosticBuilder &Diagnostic) |
static bool | isInitializingVariableImmutable (const VarDecl &InitializingVar, const Stmt &BlockStmt, ASTContext &Context, const std::vector< StringRef > &ExcludedContainerTypes) |
static bool | isVariableUnused (const VarDecl &Var, const Stmt &BlockStmt, ASTContext &Context) |
static const SubstTemplateTypeParmType * | getSubstitutedType (const QualType &Type, ASTContext &Context) |
static bool | differentReplacedTemplateParams (const QualType &VarType, const QualType &InitializerType, ASTContext &Context) |
static QualType | constructorArgumentType (const VarDecl *OldVar, const BoundNodes &Nodes) |
static std::string | paramNameOrIndex (StringRef Name, size_t Index) |
static bool | hasLoopStmtAncestor (const DeclRefExpr &DeclRef, const Decl &Decl, ASTContext &Context) |
SmallPtrSet< const DeclRefExpr *, 16 > | allDeclRefExprs (const VarDecl &VarDecl, const Stmt &Stmt, ASTContext &Context) |
Returns set of all DeclRefExprs to VarDecl within Stmt. | |
bool | isOnlyUsedAsConst (const VarDecl &Var, const Stmt &Stmt, ASTContext &Context, int Indirections) |
Returns true if all DeclRefExpr to the variable within Stmt do not modify it. See constReferenceDeclRefExprs for the meaning of Indirections. |
Variables | |
static constexpr StringRef | ObjectArgId = "objectArg" |
static constexpr StringRef | InitFunctionCallId = "initFunctionCall" |
static constexpr StringRef | MethodDeclId = "methodDecl" |
static constexpr StringRef | FunctionDeclId = "functionDecl" |
static constexpr StringRef | OldVarDeclId = "oldVarDecl" |
llvm::SmallPtrSet< const DeclRefExpr *, 16 > clang::tidy::utils::decl_ref_expr::allDeclRefExprs | ( | const VarDecl & | VarDecl, |
const Stmt & | Stmt, | ||
ASTContext & | Context ) |
Returns set of all DeclRefExprs to VarDecl within Stmt.
Definition at line 375 of file DeclRefExprUtils.cpp.
Referenced by isVariableUnused().
|
static |
Definition at line 18 of file InefficientAlgorithmCheck.cpp.
Referenced by clang::tidy::performance::InefficientAlgorithmCheck::check().
|
static |
Definition at line 218 of file UnnecessaryCopyInitialization.cpp.
References FuncDecl, FunctionDeclId, and MethodDeclId.
Referenced by clang::tidy::performance::UnnecessaryCopyInitialization::check().
|
static |
Definition at line 200 of file UnnecessaryCopyInitialization.cpp.
References getSubstitutedType().
Referenced by clang::tidy::performance::UnnecessaryCopyInitialization::check().
|
static |
Definition at line 42 of file UnnecessaryCopyInitialization.cpp.
Referenced by recordRemoval().
|
static |
Definition at line 192 of file UnnecessaryCopyInitialization.cpp.
Referenced by differentReplacedTemplateParams().
|
static |
Definition at line 30 of file UnnecessaryValueParamCheck.cpp.
Referenced by clang::tidy::performance::UnnecessaryValueParamCheck::check().
|
static |
Definition at line 148 of file UnnecessaryCopyInitialization.cpp.
References InitFunctionCallId, isInitializingVariableImmutable(), isOnlyUsedAsConst(), ObjectArgId, and OldVarDeclId.
Referenced by isInitializingVariableImmutable().
|
static |
Definition at line 25 of file ImplicitConversionInLoopCheck.cpp.
References isNonTrivialImplicitCast().
Referenced by clang::tidy::performance::ImplicitConversionInLoopCheck::check(), and isNonTrivialImplicitCast().
bool clang::tidy::utils::decl_ref_expr::isOnlyUsedAsConst | ( | const VarDecl & | Var, |
const Stmt & | Stmt, | ||
ASTContext & | Context, | ||
int | Indirections ) |
Returns true if all DeclRefExpr to the variable within Stmt do not modify it. See constReferenceDeclRefExprs for the meaning of Indirections.
Definition at line 361 of file DeclRefExprUtils.cpp.
Referenced by clang::tidy::performance::UnnecessaryCopyInitialization::check(), and isInitializingVariableImmutable().
|
static |
Definition at line 99 of file ForRangeCopyCheck.cpp.
|
static |
Definition at line 81 of file MoveConstArgCheck.cpp.
Referenced by clang::tidy::performance::MoveConstArgCheck::check().
|
static |
Definition at line 186 of file UnnecessaryCopyInitialization.cpp.
References allDeclRefExprs().
Referenced by clang::tidy::performance::UnnecessaryCopyInitialization::check().
|
static |
Definition at line 24 of file UnnecessaryValueParamCheck.cpp.
Referenced by clang::tidy::performance::UnnecessaryValueParamCheck::handleConstRefFix().
|
static |
Definition at line 32 of file UnnecessaryCopyInitialization.cpp.
References clang::tidy::utils::fixit::addQualifierToVarDecl(), clang::tidy::utils::fixit::changeVarDeclToReference(), and Fix().
|
static |
Definition at line 53 of file UnnecessaryCopyInitialization.cpp.
References clang::tidy::utils::lexer::findNextTokenSkippingComments(), and firstLocAfterNewLine().
|
static |
Definition at line 17 of file MoveConstArgCheck.cpp.
Referenced by clang::tidy::performance::MoveConstArgCheck::check().
|
static |
|
staticconstexpr |
Definition at line 29 of file UnnecessaryCopyInitialization.cpp.
Referenced by constructorArgumentType().
|
staticconstexpr |
Definition at line 27 of file UnnecessaryCopyInitialization.cpp.
Referenced by isInitializingVariableImmutable().
|
staticconstexpr |
Definition at line 28 of file UnnecessaryCopyInitialization.cpp.
Referenced by constructorArgumentType().
|
staticconstexpr |
Definition at line 26 of file UnnecessaryCopyInitialization.cpp.
Referenced by clang::tidy::performance::UnnecessaryCopyInitialization::check(), and isInitializingVariableImmutable().
|
staticconstexpr |
Definition at line 30 of file UnnecessaryCopyInitialization.cpp.
Referenced by clang::tidy::performance::UnnecessaryCopyInitialization::check(), isInitializingVariableImmutable(), and clang::tidy::performance::UnnecessaryCopyInitialization::registerMatchers().