clang-tools 20.0.0git
Classes | Functions
clang::tidy::performance Namespace Reference

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)
 
bool IsRValueReferenceParam (const Expr *Invocation, const QualType *InvocationParmType, const Expr *Arg)
 
static ClangTidyModuleRegistry::Add< PerformanceModuleX ("performance-module", "Adds performance checks.")
 

Function Documentation

◆ areTypesCompatible()

static bool clang::tidy::performance::areTypesCompatible ( QualType  Left,
QualType  Right 
)
static

◆ isNonTrivialImplicitCast()

static bool clang::tidy::performance::isNonTrivialImplicitCast ( const Stmt *  ST)
static

◆ isReferenced()

static bool clang::tidy::performance::isReferenced ( const VarDecl &  LoopVar,
const Stmt &  Stmt,
ASTContext &  Context 
)
static

Definition at line 100 of file ForRangeCopyCheck.cpp.

◆ IsRValueReferenceParam()

bool clang::tidy::performance::IsRValueReferenceParam ( const Expr *  Invocation,
const QualType *  InvocationParmType,
const Expr *  Arg 
)

◆ replaceCallWithArg()

static void clang::tidy::performance::replaceCallWithArg ( const CallExpr *  Call,
DiagnosticBuilder &  Diag,
const SourceManager &  SM,
const LangOptions &  LangOpts 
)
static

◆ X()

static ClangTidyModuleRegistry::Add< PerformanceModule > clang::tidy::performance::X ( "performance-module"  ,
"Adds performance checks."   
)
static