clang-tools  7.0.0svn
Classes | Typedefs | Functions | Variables
clang::tidy::bugprone Namespace Reference

Classes

class  ArgumentCommentCheck
 
class  AssertSideEffectCheck
 Finds assert() with side effect. More...
 
class  BoolPointerImplicitConversionCheck
 Checks for conditions based on implicit conversion from a bool pointer to bool. More...
 
class  BugproneModule
 
class  CopyConstructorInitCheck
 Finds copy constructors where the ctor don't call the copy constructor of the base class. More...
 
class  DanglingHandleCheck
 Detect dangling references in value handlers like std::experimental::string_view. More...
 
class  ExceptionEscapeCheck
 Finds functions which should not throw exceptions: Destructors, move constructors, move assignment operators, the main() function, swap() functions, functions marked with throw() or noexcept and functions given as option to the checker. More...
 
class  FoldInitTypeCheck
 Find and flag invalid initializer values in folds, e.g. More...
 
class  ForwardDeclarationNamespaceCheck
 Checks if an unused forward declaration is in a wrong namespace. More...
 
class  ForwardingReferenceOverloadCheck
 The checker looks for constructors that can act as copy or move constructors through their forwarding reference parameters. More...
 
class  InaccurateEraseCheck
 Checks for inaccurate use of the erase() method. More...
 
class  IncorrectRoundingsCheck
 Checks the usage of patterns known to produce incorrect rounding. More...
 
class  IntegerDivisionCheck
 Finds cases where integer division in a floating point context is likely to cause unintended loss of precision. More...
 
class  LambdaFunctionNameCheck
 Detect when func or FUNCTION is being used from within a lambda. More...
 
class  MacroParenthesesCheck
 Finds macros that can have unexpected behaviour due to missing parentheses. More...
 
class  MacroRepeatedSideEffectsCheck
 Checks for repeated argument with side effects in macros. More...
 
class  MisplacedOperatorInStrlenInAllocCheck
 Finds cases where 1 is added to the string in the argument to a function in the strlen() family instead of the result and value is used as an argument to a memory allocation function. More...
 
class  MisplacedWideningCastCheck
 Find casts of calculation results to bigger type. More...
 
class  MoveForwardingReferenceCheck
 The check warns if std::move is applied to a forwarding reference (i.e. More...
 
class  MultipleStatementMacroCheck
 Detect multiple statement macros that are used in unbraced conditionals. More...
 
class  ParentVirtualCallCheck
 Finds calls to grand..-parent virtual methods instead of parent's. More...
 
class  SizeofContainerCheck
 Find usages of sizeof on expressions of STL container types. More...
 
class  SizeofExpressionCheck
 Find suspicious usages of sizeof expression. More...
 
class  StringConstructorCheck
 Finds suspicious string constructor and check their parameters. More...
 
class  StringIntegerAssignmentCheck
 Finds instances where an integer is assigned to a string. More...
 
class  StringLiteralWithEmbeddedNulCheck
 Find suspicious string literals with embedded NUL characters. More...
 
class  SuspiciousEnumUsageCheck
 The checker detects various cases when an enum is probably misused (as a bitmask). More...
 
class  SuspiciousMemsetUsageCheck
 Finds memset calls with potential mistakes in their arguments. More...
 
class  SuspiciousMissingCommaCheck
 This check finds string literals which are probably concatenated accidentally. More...
 
class  SuspiciousSemicolonCheck
 This check finds semicolon that modifies the meaning of the program unintendedly. More...
 
class  SuspiciousStringCompareCheck
 Find suspicious calls to string compare functions. More...
 
class  SwappedArgumentsCheck
 Finds potentially swapped arguments by looking at implicit conversions. More...
 
class  TerminatingContinueCheck
 Checks if a 'continue' statement terminates the loop (i.e. More...
 
class  ThrowKeywordMissingCheck
 Emits a warning about temporary objects whose type is (or is derived from) a class that has 'EXCEPTION', 'Exception' or 'exception' in its name. More...
 
class  UndefinedMemoryManipulationCheck
 Finds calls of memory manipulation functions memset(), memcpy() and memmove() on not TriviallyCopyable objects resulting in undefined behavior. More...
 
class  UndelegatedConstructorCheck
 Finds creation of temporary objects in constructors that look like a function call to another constructor of the same class. More...
 
class  UnusedRaiiCheck
 Finds temporaries that look like RAII objects. More...
 
class  UnusedReturnValueCheck
 Detects function calls where the return value is unused. More...
 
class  UseAfterMoveCheck
 The check warns if an object is used after it has been moved, without an intervening reinitialization. More...
 
struct  ValueRange
 Stores a min and a max value which describe an interval. More...
 
class  VirtualNearMissCheck
 Checks for near miss of virtual methods. More...
 

Typedefs

using BasesVector = llvm::SmallVector< const CXXRecordDecl *, 5 >
 

Functions

static std::vector< std::pair< SourceLocation, StringRef > > getCommentsInRange (ASTContext *Ctx, CharSourceRange Range)
 
static std::vector< std::pair< SourceLocation, StringRef > > getCommentsBeforeLoc (ASTContext *Ctx, SourceLocation Loc)
 
static bool isLikelyTypo (llvm::ArrayRef< ParmVarDecl *> Params, StringRef ArgName, unsigned ArgIndex)
 
static bool sameName (StringRef InComment, StringRef InDecl, bool StrictMode)
 
static bool looksLikeExpectMethod (const CXXMethodDecl *Expect)
 
static bool areMockAndExpectMethods (const CXXMethodDecl *Mock, const CXXMethodDecl *Expect)
 
static const CXXMethodDecl * findMockedMethod (const CXXMethodDecl *Method)
 
static const FunctionDecl * resolveMocks (const FunctionDecl *Func)
 
*that are placed right before the argument **code *void f (bool foo)
 Checks that argument comments match parameter names. More...
 
*** f (true)
 
static bool isValidBuiltinFold (const BuiltinType &ValueType, const BuiltinType &InitType, const ASTContext &Context)
 Returns true if ValueType is allowed to fold into InitType, i.e. More...
 
static bool haveSameNamespaceOrTranslationUnit (const CXXRecordDecl *Decl1, const CXXRecordDecl *Decl2)
 
static std::string getNameOfNamespace (const CXXRecordDecl *Decl)
 
static bool isSurroundedLeft (const Token &T)
 Is argument surrounded properly with parentheses/braces/squares/commas? More...
 
static bool isSurroundedRight (const Token &T)
 Is argument surrounded properly with parentheses/braces/squares/commas? More...
 
static bool isKeyword (const Token &T)
 Is given TokenKind a keyword? More...
 
static bool isWarnOp (const Token &T)
 Warning is written when one of these operators are not within parentheses. More...
 
static bool isVarDeclKeyword (const Token &T)
 Is given Token a keyword that is used in variable declarations? More...
 
static bool possibleVarDecl (const MacroInfo *MI, const Token *Tok)
 Is there a possible variable declaration at Tok? More...
 
static unsigned getMaxCalculationWidth (const ASTContext &Context, const Expr *E)
 
static int relativeIntSizes (BuiltinType::Kind Kind)
 
static int relativeCharSizes (BuiltinType::Kind Kind)
 
static int relativeCharSizesW (BuiltinType::Kind Kind)
 
static bool isFirstWider (BuiltinType::Kind First, BuiltinType::Kind Second)
 
static void replaceMoveWithForward (const UnresolvedLookupExpr *Callee, const ParmVarDecl *ParmVar, const TemplateTypeParmDecl *TypeParmDecl, DiagnosticBuilder &Diag, const ASTContext &Context)
 
static bool isParentOf (const CXXRecordDecl &Parent, const CXXRecordDecl &ThisClass)
 
static BasesVector getParentsByGrandParent (const CXXRecordDecl &GrandParent, const CXXRecordDecl &ThisClass, const CXXMethodDecl &MemberDecl)
 
static std::string getNameAsString (const NamedDecl *Decl)
 
static std::string getExprAsString (const clang::Expr &E, clang::ASTContext &AC)
 
static int enumLength (const EnumDecl *EnumDec)
 Return the number of EnumConstantDecls in an EnumDecl. More...
 
static bool hasDisjointValueRange (const EnumDecl *Enum1, const EnumDecl *Enum2)
 
static bool isNonPowerOf2NorNullLiteral (const EnumConstantDecl *EnumConst)
 
static bool isMaxValAllBitSetLiteral (const EnumDecl *EnumDec)
 
static int countNonPowOfTwoLiteralNum (const EnumDecl *EnumDec)
 
static bool isPossiblyBitMask (const EnumDecl *EnumDec)
 Check if there is one or two enumerators that are not a power of 2 and are initialized by a literal in the enum type, and that the enumeration contains enough elements to reasonably act as a bitmask. More...
 
static const Expr * ignoreNoOpCasts (const Expr *E)
 Look through lvalue to rvalue and nop casts. More...
 
static bool isImplicitCastCandidate (const CastExpr *Cast)
 Restrict the warning to implicit casts that are most likely accidental. More...
 
static StatementMatcher inDecltypeOrTemplateArg ()
 
bool isStandardSmartPointer (const ValueDecl *VD)
 
static void emitDiagnostic (const Expr *MovingCall, const DeclRefExpr *MoveArg, const UseAfterMove &Use, ClangTidyCheck *Check, ASTContext *Context)
 
static bool isOverrideMethod (const CXXMethodDecl *MD)
 Finds out if the given method overrides some method. More...
 
static bool checkOverridingFunctionReturnType (const ASTContext *Context, const CXXMethodDecl *BaseMD, const CXXMethodDecl *DerivedMD)
 Checks whether the return types are covariant, according to C++[class.virtual]p7. More...
 
static QualType getDecayedType (QualType Type)
 
static bool checkParamTypes (const CXXMethodDecl *BaseMD, const CXXMethodDecl *DerivedMD)
 
static bool checkOverrideWithoutName (const ASTContext *Context, const CXXMethodDecl *BaseMD, const CXXMethodDecl *DerivedMD)
 
static bool checkOverrideByDerivedMethod (const CXXMethodDecl *BaseMD, const CXXMethodDecl *DerivedMD)
 Check whether BaseMD overrides DerivedMD. More...
 

Variables

static const char DifferentEnumErrorMessage []
 
static const char BitmaskErrorMessage []
 
static const char BitmaskVarErrorMessage []
 
static const char BitmaskNoteMessage [] = "used here as a bitmask"
 
static const char KnownStringCompareFunctions []
 

Typedef Documentation

◆ BasesVector

using clang::tidy::bugprone::BasesVector = typedef llvm::SmallVector<const CXXRecordDecl *, 5>

Definition at line 25 of file ParentVirtualCallCheck.cpp.

Function Documentation

◆ areMockAndExpectMethods()

static bool clang::tidy::bugprone::areMockAndExpectMethods ( const CXXMethodDecl *  Mock,
const CXXMethodDecl *  Expect 
)
static

Definition at line 155 of file ArgumentCommentCheck.cpp.

References looksLikeExpectMethod().

Referenced by findMockedMethod().

◆ checkOverrideByDerivedMethod()

static bool clang::tidy::bugprone::checkOverrideByDerivedMethod ( const CXXMethodDecl *  BaseMD,
const CXXMethodDecl *  DerivedMD 
)
static

Check whether BaseMD overrides DerivedMD.

Prerequisite: the class which BaseMD is in should be a base class of that DerivedMD is in.

Definition at line 170 of file VirtualNearMissCheck.cpp.

References isOverrideMethod().

◆ checkOverrideWithoutName()

static bool clang::tidy::bugprone::checkOverrideWithoutName ( const ASTContext *  Context,
const CXXMethodDecl *  BaseMD,
const CXXMethodDecl *  DerivedMD 
)
static
Returns
true if derived method can override base method except for the name.

Definition at line 150 of file VirtualNearMissCheck.cpp.

◆ checkOverridingFunctionReturnType()

static bool clang::tidy::bugprone::checkOverridingFunctionReturnType ( const ASTContext *  Context,
const CXXMethodDecl *  BaseMD,
const CXXMethodDecl *  DerivedMD 
)
static

Checks whether the return types are covariant, according to C++[class.virtual]p7.

Similar with clang::Sema::CheckOverridingFunctionReturnType.

Returns
true if the return types of BaseMD and DerivedMD are covariant.

Check if the return types are covariant.

BTy is the class type in return type of BaseMD. For example, B* Base::md() While BRD is the declaration of B.

Definition at line 40 of file VirtualNearMissCheck.cpp.

◆ checkParamTypes()

static bool clang::tidy::bugprone::checkParamTypes ( const CXXMethodDecl *  BaseMD,
const CXXMethodDecl *  DerivedMD 
)
static
Returns
true if the param types are the same.

Definition at line 132 of file VirtualNearMissCheck.cpp.

References getDecayedType().

◆ countNonPowOfTwoLiteralNum()

static int clang::tidy::bugprone::countNonPowOfTwoLiteralNum ( const EnumDecl *  EnumDec)
static

Definition at line 90 of file SuspiciousEnumUsageCheck.cpp.

References isNonPowerOf2NorNullLiteral().

Referenced by isPossiblyBitMask().

◆ emitDiagnostic()

static void clang::tidy::bugprone::emitDiagnostic ( const Expr *  MovingCall,
const DeclRefExpr *  MoveArg,
const UseAfterMove &  Use,
ClangTidyCheck Check,
ASTContext *  Context 
)
static

◆ enumLength()

static int clang::tidy::bugprone::enumLength ( const EnumDecl *  EnumDec)
static

Return the number of EnumConstantDecls in an EnumDecl.

Definition at line 54 of file SuspiciousEnumUsageCheck.cpp.

Referenced by isPossiblyBitMask().

◆ f() [1/2]

* that are placed right before the argument* * code* void clang::tidy::bugprone::f ( bool  foo)

Checks that argument comments match parameter names.

The check understands argument comments in the form `/*parameter_name=

Referenced by clang::clangd::proximityScore().

◆ f() [2/2]

* * * clang::tidy::bugprone::f ( true  )

◆ findMockedMethod()

static const CXXMethodDecl* clang::tidy::bugprone::findMockedMethod ( const CXXMethodDecl *  Method)
static

Definition at line 170 of file ArgumentCommentCheck.cpp.

References areMockAndExpectMethods(), Ctx, and looksLikeExpectMethod().

Referenced by resolveMocks().

◆ getCommentsBeforeLoc()

static std::vector<std::pair<SourceLocation, StringRef> > clang::tidy::bugprone::getCommentsBeforeLoc ( ASTContext *  Ctx,
SourceLocation  Loc 
)
static

◆ getCommentsInRange()

static std::vector<std::pair<SourceLocation, StringRef> > clang::tidy::bugprone::getCommentsInRange ( ASTContext *  Ctx,
CharSourceRange  Range 
)
static

Definition at line 47 of file ArgumentCommentCheck.cpp.

◆ getDecayedType()

static QualType clang::tidy::bugprone::getDecayedType ( QualType  Type)
static
Returns
decayed type for arrays and functions.

Definition at line 125 of file VirtualNearMissCheck.cpp.

Referenced by checkParamTypes().

◆ getExprAsString()

static std::string clang::tidy::bugprone::getExprAsString ( const clang::Expr &  E,
clang::ASTContext &  AC 
)
static

◆ getMaxCalculationWidth()

static unsigned clang::tidy::bugprone::getMaxCalculationWidth ( const ASTContext &  Context,
const Expr *  E 
)
static

◆ getNameAsString()

static std::string clang::tidy::bugprone::getNameAsString ( const NamedDecl *  Decl)
static

◆ getNameOfNamespace()

static std::string clang::tidy::bugprone::getNameOfNamespace ( const CXXRecordDecl *  Decl)
static

◆ getParentsByGrandParent()

static BasesVector clang::tidy::bugprone::getParentsByGrandParent ( const CXXRecordDecl &  GrandParent,
const CXXRecordDecl &  ThisClass,
const CXXMethodDecl &  MemberDecl 
)
static

◆ hasDisjointValueRange()

static bool clang::tidy::bugprone::hasDisjointValueRange ( const EnumDecl *  Enum1,
const EnumDecl *  Enum2 
)
static

◆ haveSameNamespaceOrTranslationUnit()

static bool clang::tidy::bugprone::haveSameNamespaceOrTranslationUnit ( const CXXRecordDecl *  Decl1,
const CXXRecordDecl *  Decl2 
)
static

◆ ignoreNoOpCasts()

static const Expr* clang::tidy::bugprone::ignoreNoOpCasts ( const Expr *  E)
static

Look through lvalue to rvalue and nop casts.

This filters out implicit conversions that have no effect on the input but block our view for other implicit casts.

Definition at line 29 of file SwappedArgumentsCheck.cpp.

Referenced by clang::tidy::bugprone::SwappedArgumentsCheck::check().

◆ inDecltypeOrTemplateArg()

static StatementMatcher clang::tidy::bugprone::inDecltypeOrTemplateArg ( )
static

Definition at line 78 of file UseAfterMoveCheck.cpp.

◆ isFirstWider()

static bool clang::tidy::bugprone::isFirstWider ( BuiltinType::Kind  First,
BuiltinType::Kind  Second 
)
static

◆ isImplicitCastCandidate()

static bool clang::tidy::bugprone::isImplicitCastCandidate ( const CastExpr *  Cast)
static

Restrict the warning to implicit casts that are most likely accidental.

User defined or integral conversions fit in this category, lvalue to rvalue or derived to base does not.

Definition at line 40 of file SwappedArgumentsCheck.cpp.

Referenced by clang::tidy::bugprone::SwappedArgumentsCheck::check().

◆ isKeyword()

static bool clang::tidy::bugprone::isKeyword ( const Token &  T)
static

Is given TokenKind a keyword?

Definition at line 56 of file MacroParenthesesCheck.cpp.

Referenced by possibleVarDecl().

◆ isLikelyTypo()

static bool clang::tidy::bugprone::isLikelyTypo ( llvm::ArrayRef< ParmVarDecl *>  Params,
StringRef  ArgName,
unsigned  ArgIndex 
)
static

Definition at line 108 of file ArgumentCommentCheck.cpp.

References clang::clangd::lower().

◆ isMaxValAllBitSetLiteral()

static bool clang::tidy::bugprone::isMaxValAllBitSetLiteral ( const EnumDecl *  EnumDec)
static

Definition at line 75 of file SuspiciousEnumUsageCheck.cpp.

Referenced by isPossiblyBitMask().

◆ isNonPowerOf2NorNullLiteral()

static bool clang::tidy::bugprone::isNonPowerOf2NorNullLiteral ( const EnumConstantDecl *  EnumConst)
static

Definition at line 65 of file SuspiciousEnumUsageCheck.cpp.

Referenced by countNonPowOfTwoLiteralNum().

◆ isOverrideMethod()

static bool clang::tidy::bugprone::isOverrideMethod ( const CXXMethodDecl *  MD)
static

Finds out if the given method overrides some method.

Definition at line 31 of file VirtualNearMissCheck.cpp.

Referenced by checkOverrideByDerivedMethod().

◆ isParentOf()

static bool clang::tidy::bugprone::isParentOf ( const CXXRecordDecl &  Parent,
const CXXRecordDecl &  ThisClass 
)
static

◆ isPossiblyBitMask()

static bool clang::tidy::bugprone::isPossiblyBitMask ( const EnumDecl *  EnumDec)
static

Check if there is one or two enumerators that are not a power of 2 and are initialized by a literal in the enum type, and that the enumeration contains enough elements to reasonably act as a bitmask.

Exclude the case where the last enumerator is the sum of the lesser values (and initialized by a literal) or when it could contain consecutive values.

Definition at line 101 of file SuspiciousEnumUsageCheck.cpp.

References countNonPowOfTwoLiteralNum(), enumLength(), isMaxValAllBitSetLiteral(), clang::tidy::bugprone::ValueRange::MaxVal, and clang::tidy::bugprone::ValueRange::MinVal.

Referenced by clang::tidy::bugprone::SuspiciousEnumUsageCheck::check().

◆ isStandardSmartPointer()

bool clang::tidy::bugprone::isStandardSmartPointer ( const ValueDecl *  VD)

Definition at line 208 of file UseAfterMoveCheck.cpp.

References DeclRef, and Name.

◆ isSurroundedLeft()

static bool clang::tidy::bugprone::isSurroundedLeft ( const Token &  T)
static

Is argument surrounded properly with parentheses/braces/squares/commas?

Definition at line 44 of file MacroParenthesesCheck.cpp.

◆ isSurroundedRight()

static bool clang::tidy::bugprone::isSurroundedRight ( const Token &  T)
static

Is argument surrounded properly with parentheses/braces/squares/commas?

Definition at line 50 of file MacroParenthesesCheck.cpp.

◆ isValidBuiltinFold()

static bool clang::tidy::bugprone::isValidBuiltinFold ( const BuiltinType &  ValueType,
const BuiltinType &  InitType,
const ASTContext &  Context 
)
static

Returns true if ValueType is allowed to fold into InitType, i.e.

if: static_cast<InitType>(ValueType{some_value}) does not result in trucation.

Definition at line 80 of file FoldInitTypeCheck.cpp.

◆ isVarDeclKeyword()

static bool clang::tidy::bugprone::isVarDeclKeyword ( const Token &  T)
static

Is given Token a keyword that is used in variable declarations?

Definition at line 70 of file MacroParenthesesCheck.cpp.

Referenced by possibleVarDecl().

◆ isWarnOp()

static bool clang::tidy::bugprone::isWarnOp ( const Token &  T)
static

Warning is written when one of these operators are not within parentheses.

Definition at line 62 of file MacroParenthesesCheck.cpp.

Referenced by possibleVarDecl().

◆ looksLikeExpectMethod()

static bool clang::tidy::bugprone::looksLikeExpectMethod ( const CXXMethodDecl *  Expect)
static

Definition at line 150 of file ArgumentCommentCheck.cpp.

Referenced by areMockAndExpectMethods(), and findMockedMethod().

◆ possibleVarDecl()

static bool clang::tidy::bugprone::possibleVarDecl ( const MacroInfo *  MI,
const Token *  Tok 
)
static

Is there a possible variable declaration at Tok?

Definition at line 78 of file MacroParenthesesCheck.cpp.

References isKeyword(), isVarDeclKeyword(), isWarnOp(), and Loc.

◆ relativeCharSizes()

static int clang::tidy::bugprone::relativeCharSizes ( BuiltinType::Kind  Kind)
static

Definition at line 132 of file MisplacedWideningCastCheck.cpp.

Referenced by isFirstWider().

◆ relativeCharSizesW()

static int clang::tidy::bugprone::relativeCharSizesW ( BuiltinType::Kind  Kind)
static

Definition at line 151 of file MisplacedWideningCastCheck.cpp.

Referenced by isFirstWider().

◆ relativeIntSizes()

static int clang::tidy::bugprone::relativeIntSizes ( BuiltinType::Kind  Kind)
static

Definition at line 97 of file MisplacedWideningCastCheck.cpp.

Referenced by isFirstWider().

◆ replaceMoveWithForward()

static void clang::tidy::bugprone::replaceMoveWithForward ( const UnresolvedLookupExpr *  Callee,
const ParmVarDecl *  ParmVar,
const TemplateTypeParmDecl *  TypeParmDecl,
DiagnosticBuilder &  Diag,
const ASTContext &  Context 
)
static

◆ resolveMocks()

static const FunctionDecl* clang::tidy::bugprone::resolveMocks ( const FunctionDecl *  Func)
static

Definition at line 195 of file ArgumentCommentCheck.cpp.

References Ctx, and findMockedMethod().

◆ sameName()

static bool clang::tidy::bugprone::sameName ( StringRef  InComment,
StringRef  InDecl,
bool  StrictMode 
)
static

Definition at line 141 of file ArgumentCommentCheck.cpp.

Variable Documentation

◆ BitmaskErrorMessage

const char clang::tidy::bugprone::BitmaskErrorMessage[]
static
Initial value:
=
"enum type seems like a bitmask (contains mostly "
"power-of-2 literals), but this literal is not a "
"power-of-2"

Definition at line 24 of file SuspiciousEnumUsageCheck.cpp.

◆ BitmaskNoteMessage

const char clang::tidy::bugprone::BitmaskNoteMessage[] = "used here as a bitmask"
static

Definition at line 34 of file SuspiciousEnumUsageCheck.cpp.

◆ BitmaskVarErrorMessage

const char clang::tidy::bugprone::BitmaskVarErrorMessage[]
static
Initial value:
=
"enum type seems like a bitmask (contains mostly "
"power-of-2 literals) but %plural{1:a literal is|:some literals are}0 not "
"power-of-2"

Definition at line 29 of file SuspiciousEnumUsageCheck.cpp.

◆ DifferentEnumErrorMessage

const char clang::tidy::bugprone::DifferentEnumErrorMessage[]
static
Initial value:
=
"enum values are from different enum types"

Definition at line 21 of file SuspiciousEnumUsageCheck.cpp.

Referenced by clang::tidy::bugprone::SuspiciousEnumUsageCheck::check().

◆ KnownStringCompareFunctions

const char clang::tidy::bugprone::KnownStringCompareFunctions[]
static

Definition at line 25 of file SuspiciousStringCompareCheck.cpp.