26 return LangOpts.CPlusPlus || LangOpts.C23;
30 void check(
const ast_matchers::MatchFinder::MatchResult &Result)
override;
32 return TK_IgnoreUnlessSpelledInSource;
38 void reportBinOp(
const ASTContext &Context,
const BinaryOperator *Op);
40 void replaceWithThenStatement(
const ASTContext &Context,
41 const IfStmt *IfStatement,
42 const Expr *BoolLiteral);
44 void replaceWithElseStatement(
const ASTContext &Context,
45 const IfStmt *IfStatement,
46 const Expr *BoolLiteral);
48 void replaceWithCondition(
const ASTContext &Context,
49 const ConditionalOperator *Ternary,
bool Negated);
51 void replaceWithReturnCondition(
const ASTContext &Context,
const IfStmt *If,
52 const Expr *BoolLiteral,
bool Negated);
54 void replaceWithAssignment(
const ASTContext &Context,
const IfStmt *If,
55 const Expr *Var, SourceLocation Loc,
bool Negated);
57 void replaceCompoundReturnWithCondition(
const ASTContext &Context,
58 const ReturnStmt *Ret,
bool Negated,
60 const Expr *ThenReturn);
62 bool reportDeMorgan(
const ASTContext &Context,
const UnaryOperator *Outer,
63 const BinaryOperator *Inner,
bool TryOfferFix,
64 const Stmt *Parent,
const ParenExpr *Parens);
66 bool issueDiag(
const ASTContext &Context, SourceLocation Loc,
67 StringRef Description, SourceRange ReplacementRange,
68 StringRef Replacement);
70 bool canBeBypassed(
const Stmt *S)
const;
72 const bool IgnoreMacros;
73 const bool ChainedConditionalReturn;
74 const bool ChainedConditionalAssignment;
75 const bool SimplifyDeMorgan;
76 const bool SimplifyDeMorganRelaxed;
Every ClangTidyCheck reports errors through a DiagnosticsEngine provided by this context.