[clang-tools-extra] 1533fd9 - [clang-tidy][NFC] Apply readability-redundant-nested-if 3/N (#214693)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 7 04:29:36 PDT 2026
Author: Baranov Victor
Date: 2026-08-07T14:29:32+03:00
New Revision: 1533fd95be9ff691b0bd70e589ffa273cf64e9db
URL: https://github.com/llvm/llvm-project/commit/1533fd95be9ff691b0bd70e589ffa273cf64e9db
DIFF: https://github.com/llvm/llvm-project/commit/1533fd95be9ff691b0bd70e589ffa273cf64e9db.diff
LOG: [clang-tidy][NFC] Apply readability-redundant-nested-if 3/N (#214693)
Added:
Modified:
clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
clang-tools-extra/clang-tidy/utils/Aliasing.cpp
clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp
clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp b/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
index be6a4f30e610e..e74620739d94f 100644
--- a/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp
@@ -88,11 +88,10 @@ static bool isRValueReferenceParam(const Expr *Invocation,
return true;
if (const auto *ConstructCallExpr =
dyn_cast<CXXConstructExpr>(Invocation)) {
- if (const auto *ConstructorDecl = ConstructCallExpr->getConstructor()) {
- if (!ConstructorDecl->isCopyOrMoveConstructor() &&
- !ConstructorDecl->isDefaultConstructor())
- return true;
- }
+ if (const auto *ConstructorDecl = ConstructCallExpr->getConstructor();
+ ConstructorDecl && !ConstructorDecl->isCopyOrMoveConstructor() &&
+ !ConstructorDecl->isDefaultConstructor())
+ return true;
}
}
return false;
diff --git a/clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp b/clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
index e2ea0cd112a3f..e887a9862ca5f 100644
--- a/clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
+++ b/clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp
@@ -175,10 +175,8 @@ void UseStdMoveCheck::check(const MatchFinder::MatchResult &Result) {
if (!S.isReachable())
continue;
auto &W = CFGState.find(&*S)->second;
- if (W.Ready) {
- if (--W.RemainingSuccessors == 0)
- WorkList.push_back(&*S);
- }
+ if (W.Ready && --W.RemainingSuccessors == 0)
+ WorkList.push_back(&*S);
}
}
}
diff --git a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
index c5fbd3022756d..2db5385052843 100644
--- a/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp
@@ -339,13 +339,12 @@ void ContainerSizeEmptyCheck::check(const MatchFinder::MatchResult &Result) {
return;
// Always true/false, no warnings for that.
- if (Value == 0) {
- if ((OpCode == BinaryOperatorKind::BO_GT && !ContainerIsLHS) ||
- (OpCode == BinaryOperatorKind::BO_LT && ContainerIsLHS) ||
- (OpCode == BinaryOperatorKind::BO_LE && !ContainerIsLHS) ||
- (OpCode == BinaryOperatorKind::BO_GE && ContainerIsLHS))
- return;
- }
+ if (Value == 0 &&
+ ((OpCode == BinaryOperatorKind::BO_GT && !ContainerIsLHS) ||
+ (OpCode == BinaryOperatorKind::BO_LT && ContainerIsLHS) ||
+ (OpCode == BinaryOperatorKind::BO_LE && !ContainerIsLHS) ||
+ (OpCode == BinaryOperatorKind::BO_GE && ContainerIsLHS)))
+ return;
// Do not warn for size > 1, 1 < size, size <= 1, 1 >= size.
if (Value == 1) {
diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
index 86cc399611a83..dfbd061986128 100644
--- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp
@@ -1241,9 +1241,9 @@ StyleKind IdentifierNamingCheck::findStyleKind(
// C++17 structured bindings: treat each binding as if it were a variable
// with the same storage and qualifiers as the parent DecompositionDecl.
if (const auto *BD = dyn_cast<BindingDecl>(D)) {
- if (const auto *Decomp = dyn_cast_or_null<VarDecl>(BD->getDecomposedDecl()))
- if (!BD->getType().isNull())
- return findStyleKindForVar(Decomp, BD->getType(), NamingStyles);
+ if (const auto *Decomp = dyn_cast_or_null<VarDecl>(BD->getDecomposedDecl());
+ Decomp && !BD->getType().isNull())
+ return findStyleKindForVar(Decomp, BD->getType(), NamingStyles);
return SK_Invalid;
}
@@ -1255,9 +1255,9 @@ StyleKind IdentifierNamingCheck::findStyleKind(
// If this method has the same name as any base method, this is likely
// necessary even if it's not an override. e.g. CRTP.
for (const CXXBaseSpecifier &Base : Decl->getParent()->bases())
- if (const auto *RD = Base.getType()->getAsCXXRecordDecl())
- if (RD->hasMemberName(Decl->getDeclName()))
- return SK_Invalid;
+ if (const auto *RD = Base.getType()->getAsCXXRecordDecl();
+ RD && RD->hasMemberName(Decl->getDeclName()))
+ return SK_Invalid;
if (Decl->isConstexpr() && NamingStyles[SK_ConstexprMethod])
return SK_ConstexprMethod;
diff --git a/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp b/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
index acf9503f265fe..c0b11b7fc1afb 100644
--- a/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp
@@ -178,9 +178,10 @@ bool MagicNumbersCheck::isConstant(const MatchFinder::MatchResult &Result,
// Don't warn on string user defined literals:
// std::string s = "Hello World"s;
- if (const auto *UDL = Parent.get<UserDefinedLiteral>())
- if (UDL->getLiteralOperatorKind() == UserDefinedLiteral::LOK_String)
- return true;
+ if (const auto *UDL = Parent.get<UserDefinedLiteral>();
+ UDL &&
+ UDL->getLiteralOperatorKind() == UserDefinedLiteral::LOK_String)
+ return true;
return false;
});
diff --git a/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp b/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
index 967c63db51dd7..e33a045095147 100644
--- a/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp
@@ -177,10 +177,9 @@ class FindUsageOfThis : public RecursiveASTVisitor<FindUsageOfThis> {
const auto *Parent = getParentExprIgnoreParens(E);
// Look through deref of this.
- if (const auto *UnOp = dyn_cast_or_null<UnaryOperator>(Parent)) {
- if (UnOp->getOpcode() == UO_Deref)
- Parent = getParentExprIgnoreParens(UnOp);
- }
+ if (const auto *UnOp = dyn_cast_or_null<UnaryOperator>(Parent);
+ UnOp && UnOp->getOpcode() == UO_Deref)
+ Parent = getParentExprIgnoreParens(UnOp);
// It's okay to
// return (const S*)this;
@@ -195,9 +194,9 @@ class FindUsageOfThis : public RecursiveASTVisitor<FindUsageOfThis> {
// (const T)(S->t)
// (LValueToRValue)(S->t)
// when 't' is either of builtin type or a public member.
- } else if (const auto *Member = dyn_cast_or_null<MemberExpr>(Parent)) {
- if (visitUser(Member, /*OnConstObject=*/false))
- return true;
+ } else if (const auto *Member = dyn_cast_or_null<MemberExpr>(Parent);
+ Member && visitUser(Member, /*OnConstObject=*/false)) {
+ return true;
}
// Unknown user of this.
diff --git a/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp b/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
index a7bd42e7b39f0..07d1bbeccbc16 100644
--- a/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp
@@ -100,9 +100,10 @@ void NamedParameterCheck::check(const MatchFinder::MatchResult &Result) {
continue;
// Skip gmock testing::Unused parameters.
- if (const auto *Typedef = Parm->getType()->getAs<TypedefType>())
- if (Typedef->getDecl()->getQualifiedNameAsString() == "testing::Unused")
- continue;
+ if (const auto *Typedef = Parm->getType()->getAs<TypedefType>();
+ Typedef &&
+ Typedef->getDecl()->getQualifiedNameAsString() == "testing::Unused")
+ continue;
// Skip std::nullptr_t.
if (Parm->getType().getCanonicalType()->isNullPtrType())
diff --git a/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp b/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
index 4bfe816fd6004..12113fa3b570a 100644
--- a/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp
@@ -75,10 +75,9 @@ void NonConstParameterCheck::registerMatchers(MatchFinder *Finder) {
void NonConstParameterCheck::check(const MatchFinder::MatchResult &Result) {
if (const auto *Parm = Result.Nodes.getNodeAs<ParmVarDecl>("Parm")) {
if (const DeclContext *D = Parm->getParentFunctionOrMethod()) {
- if (const auto *M = dyn_cast<CXXMethodDecl>(D)) {
- if (M->isVirtual() || M->size_overridden_methods() != 0)
- return;
- }
+ if (const auto *M = dyn_cast<CXXMethodDecl>(D);
+ M && (M->isVirtual() || M->size_overridden_methods() != 0))
+ return;
}
addParm(Parm);
} else if (const auto *Ctor =
diff --git a/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp b/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
index 069350599d270..9e55613f0b969 100644
--- a/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp
@@ -136,18 +136,18 @@ void RedundantStringInitCheck::check(const MatchFinder::MatchResult &Result) {
}
if (const auto *CtorInit =
Result.Nodes.getNodeAs<CXXCtorInitializer>("ctorInit")) {
- if (const FieldDecl *Member = CtorInit->getMember()) {
- if (!Member->hasInClassInitializer() ||
- Result.Nodes.getNodeAs<Expr>("empty_init")) {
- // The String isn't declared in the class with an initializer or its
- // declared with a redundant initializer, which will be removed. Either
- // way the string will be default initialized, therefore we can remove
- // the constructor initializer entirely.
- diag(CtorInit->getMemberLocation(), "redundant string initialization")
- << FixItHint::CreateRemoval(CtorInit->getSourceRange());
- return;
- }
+ if (const FieldDecl *Member = CtorInit->getMember();
+ Member && (!Member->hasInClassInitializer() ||
+ Result.Nodes.getNodeAs<Expr>("empty_init"))) {
+ // The String isn't declared in the class with an initializer or its
+ // declared with a redundant initializer, which will be removed. Either
+ // way the string will be default initialized, therefore we can remove
+ // the constructor initializer entirely.
+ diag(CtorInit->getMemberLocation(), "redundant string initialization")
+ << FixItHint::CreateRemoval(CtorInit->getSourceRange());
+ return;
}
+
const CXXConstructExpr *Construct = getConstructExpr(*CtorInit);
if (!Construct)
return;
diff --git a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
index cc82e052d58da..3a63b6f84eed3 100644
--- a/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp
@@ -116,17 +116,15 @@ static bool needsZeroComparison(const Expr *E) {
}
static bool needsStaticCast(const Expr *E) {
- if (const auto *ImpCast = dyn_cast<ImplicitCastExpr>(E)) {
- if (ImpCast->getCastKind() == CK_UserDefinedConversion &&
- ImpCast->getSubExpr()->getType()->isBooleanType()) {
- if (const auto *MemCall =
- dyn_cast<CXXMemberCallExpr>(ImpCast->getSubExpr())) {
- if (const auto *MemDecl =
- dyn_cast<CXXConversionDecl>(MemCall->getMethodDecl())) {
- if (MemDecl->isExplicit())
- return true;
- }
- }
+ if (const auto *ImpCast = dyn_cast<ImplicitCastExpr>(E);
+ ImpCast && ImpCast->getCastKind() == CK_UserDefinedConversion &&
+ ImpCast->getSubExpr()->getType()->isBooleanType()) {
+ if (const auto *MemCall =
+ dyn_cast<CXXMemberCallExpr>(ImpCast->getSubExpr())) {
+ if (const auto *MemDecl =
+ dyn_cast<CXXConversionDecl>(MemCall->getMethodDecl());
+ MemDecl && MemDecl->isExplicit())
+ return true;
}
}
@@ -165,16 +163,15 @@ static std::string replacementExpression(const ASTContext &Context,
const bool NeedsStaticCast =
Context.getLangOpts().CPlusPlus && needsStaticCast(E);
if (Negated) {
- if (const auto *UnOp = dyn_cast<UnaryOperator>(E)) {
- if (UnOp->getOpcode() == UO_LNot) {
- if (needsNullPtrComparison(UnOp->getSubExpr()))
- return compareExpressionToNullPtr(Context, UnOp->getSubExpr(), true);
+ if (const auto *UnOp = dyn_cast<UnaryOperator>(E);
+ UnOp && UnOp->getOpcode() == UO_LNot) {
+ if (needsNullPtrComparison(UnOp->getSubExpr()))
+ return compareExpressionToNullPtr(Context, UnOp->getSubExpr(), true);
- if (needsZeroComparison(UnOp->getSubExpr()))
- return compareExpressionToZero(Context, UnOp->getSubExpr(), true);
+ if (needsZeroComparison(UnOp->getSubExpr()))
+ return compareExpressionToZero(Context, UnOp->getSubExpr(), true);
- return replacementExpression(Context, false, UnOp->getSubExpr());
- }
+ return replacementExpression(Context, false, UnOp->getSubExpr());
}
if (needsNullPtrComparison(E))
@@ -190,13 +187,13 @@ static std::string replacementExpression(const ASTContext &Context,
NegatedOperator = negatedOperator(BinOp);
LHS = BinOp->getLHS();
RHS = BinOp->getRHS();
- } else if (const auto *OpExpr = dyn_cast<CXXOperatorCallExpr>(E)) {
- if (OpExpr->getNumArgs() == 2) {
- NegatedOperator = negatedOperator(OpExpr);
- LHS = OpExpr->getArg(0);
- RHS = OpExpr->getArg(1);
- }
+ } else if (const auto *OpExpr = dyn_cast<CXXOperatorCallExpr>(E);
+ OpExpr && OpExpr->getNumArgs() == 2) {
+ NegatedOperator = negatedOperator(OpExpr);
+ LHS = OpExpr->getArg(0);
+ RHS = OpExpr->getArg(1);
}
+
if (!NegatedOperator.empty() && LHS && RHS)
return (asBool((getText(Context, *LHS) + " " + NegatedOperator + " " +
getText(Context, *RHS))
@@ -216,14 +213,13 @@ static std::string replacementExpression(const ASTContext &Context,
return ("!" + asBool(Text, NeedsStaticCast));
}
- if (const auto *UnOp = dyn_cast<UnaryOperator>(E)) {
- if (UnOp->getOpcode() == UO_LNot) {
- if (needsNullPtrComparison(UnOp->getSubExpr()))
- return compareExpressionToNullPtr(Context, UnOp->getSubExpr(), false);
+ if (const auto *UnOp = dyn_cast<UnaryOperator>(E);
+ UnOp && UnOp->getOpcode() == UO_LNot) {
+ if (needsNullPtrComparison(UnOp->getSubExpr()))
+ return compareExpressionToNullPtr(Context, UnOp->getSubExpr(), false);
- if (needsZeroComparison(UnOp->getSubExpr()))
- return compareExpressionToZero(Context, UnOp->getSubExpr(), false);
- }
+ if (needsZeroComparison(UnOp->getSubExpr()))
+ return compareExpressionToZero(Context, UnOp->getSubExpr(), false);
}
if (needsNullPtrComparison(E))
@@ -421,12 +417,11 @@ class SimplifyBooleanExprCheck::Visitor : public RecursiveASTVisitor<Visitor> {
const DeclAndBool ElseAssignment =
checkSingleStatement(If->getElse(), VarBoolAssignmentMatcher);
if (ElseAssignment.Item == ThenAssignment.Item &&
- ElseAssignment.Bool != ThenAssignment.Bool) {
- if (Check->ChainedConditionalAssignment ||
- !isa_and_nonnull<IfStmt>(parent())) {
- Check->replaceWithAssignment(Context, If, Var, Loc,
- ElseAssignment.Bool);
- }
+ ElseAssignment.Bool != ThenAssignment.Bool &&
+ (Check->ChainedConditionalAssignment ||
+ !isa_and_nonnull<IfStmt>(parent()))) {
+ Check->replaceWithAssignment(Context, If, Var, Loc,
+ ElseAssignment.Bool);
}
}
}
@@ -563,19 +558,20 @@ class SimplifyBooleanExprCheck::Visitor : public RecursiveASTVisitor<Visitor> {
if (!isExpectedBinaryOp(SubExpr))
return Base::TraverseUnaryOperator(Op);
const auto *BinaryOp = cast<BinaryOperator>(SubExpr);
- if (Check->SimplifyDeMorganRelaxed ||
- checkEitherSide(
- BinaryOp,
- [this](const Expr *E) { return isExpectedUnaryLNot(E); }) ||
- checkEitherSide(
- BinaryOp, [this](const Expr *E) { return nestedDemorgan(E, 1); })) {
- if (Check->reportDeMorgan(Context, Op, BinaryOp, !IsProcessing, parent(),
- Parens) &&
- !Check->areDiagsSelfContained()) {
- const llvm::SaveAndRestore RAII(IsProcessing, true);
- return Base::TraverseUnaryOperator(Op);
- }
+ if ((Check->SimplifyDeMorganRelaxed ||
+ checkEitherSide(
+ BinaryOp,
+ [this](const Expr *E) { return isExpectedUnaryLNot(E); }) ||
+ checkEitherSide(
+ BinaryOp,
+ [this](const Expr *E) { return nestedDemorgan(E, 1); })) &&
+ Check->reportDeMorgan(Context, Op, BinaryOp, !IsProcessing, parent(),
+ Parens) &&
+ !Check->areDiagsSelfContained()) {
+ const llvm::SaveAndRestore RAII(IsProcessing, true);
+ return Base::TraverseUnaryOperator(Op);
}
+
return Base::TraverseUnaryOperator(Op);
}
@@ -851,13 +847,12 @@ flipDemorganBinaryOperator(SmallVectorImpl<FixItHint> &Fixes,
constexpr bool LogicalOpParentheses = true;
if (((*OuterBO == NewOp) || (!LogicalOpParentheses &&
(*OuterBO == BO_LOr && NewOp == BO_LAnd))) &&
- Parens) {
- if (!Parens->getLParen().isMacroID() &&
- !Parens->getRParen().isMacroID()) {
- Fixes.push_back(FixItHint::CreateRemoval(Parens->getLParen()));
- Fixes.push_back(FixItHint::CreateRemoval(Parens->getRParen()));
- }
+ Parens && !Parens->getLParen().isMacroID() &&
+ !Parens->getRParen().isMacroID()) {
+ Fixes.push_back(FixItHint::CreateRemoval(Parens->getLParen()));
+ Fixes.push_back(FixItHint::CreateRemoval(Parens->getRParen()));
}
+
if (*OuterBO == BO_LAnd && NewOp == BO_LOr && !Parens) {
Fixes.push_back(FixItHint::CreateInsertion(BinOp->getBeginLoc(), "("));
Fixes.push_back(FixItHint::CreateInsertion(
diff --git a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
index 854bd1dae9e30..49c327ad77177 100644
--- a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
+++ b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp
@@ -726,12 +726,11 @@ void SuspiciousCallArgumentCheck::setArgNamesAndTypes(
ArgNames.push_back(Var->getName());
continue;
}
- if (const auto *FCall = dyn_cast<FunctionDecl>(ArgExpr->getDecl())) {
- if (FCall->getNameInfo().getName().isIdentifier()) {
- ArgTypes.push_back(FCall->getType());
- ArgNames.push_back(FCall->getName());
- continue;
- }
+ if (const auto *FCall = dyn_cast<FunctionDecl>(ArgExpr->getDecl());
+ FCall && FCall->getNameInfo().getName().isIdentifier()) {
+ ArgTypes.push_back(FCall->getType());
+ ArgNames.push_back(FCall->getName());
+ continue;
}
}
diff --git a/clang-tools-extra/clang-tidy/utils/ASTUtils.cpp b/clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
index 4baef7539008a..f73cc270678c9 100644
--- a/clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
+++ b/clang-tools-extra/clang-tidy/utils/ASTUtils.cpp
@@ -49,12 +49,12 @@ bool exprHasBitFlagWithSpelling(const Expr *Flags, const SourceManager &SM,
return MacroName == FlagName;
}
// If it's a binary OR operation.
- if (const auto *BO = dyn_cast<BinaryOperator>(Flags))
- if (BO->getOpcode() == BinaryOperatorKind::BO_Or)
- return exprHasBitFlagWithSpelling(BO->getLHS()->IgnoreParenCasts(), SM,
- LangOpts, FlagName) ||
- exprHasBitFlagWithSpelling(BO->getRHS()->IgnoreParenCasts(), SM,
- LangOpts, FlagName);
+ if (const auto *BO = dyn_cast<BinaryOperator>(Flags);
+ BO && BO->getOpcode() == BinaryOperatorKind::BO_Or)
+ return exprHasBitFlagWithSpelling(BO->getLHS()->IgnoreParenCasts(), SM,
+ LangOpts, FlagName) ||
+ exprHasBitFlagWithSpelling(BO->getRHS()->IgnoreParenCasts(), SM,
+ LangOpts, FlagName);
// Otherwise, assume it has the flag.
return true;
@@ -97,13 +97,12 @@ bool areStatementsIdentical(const Stmt *FirstStmt, const Stmt *SecondStmt,
if (FirstStmt->getStmtClass() != SecondStmt->getStmtClass())
return false;
- if (isa<Expr>(FirstStmt) && isa<Expr>(SecondStmt)) {
+ if (isa<Expr>(FirstStmt) && isa<Expr>(SecondStmt) &&
+ (cast<Expr>(FirstStmt)->containsErrors() ||
+ cast<Expr>(SecondStmt)->containsErrors()))
// If we have errors in expressions, we will be unable
// to accurately profile and compute hashes for each statements.
- if (cast<Expr>(FirstStmt)->containsErrors() ||
- cast<Expr>(SecondStmt)->containsErrors())
- return false;
- }
+ return false;
llvm::FoldingSetNodeID DataFirst, DataSecond;
FirstStmt->Profile(DataFirst, Context, Canonical);
diff --git a/clang-tools-extra/clang-tidy/utils/Aliasing.cpp b/clang-tools-extra/clang-tidy/utils/Aliasing.cpp
index 8b64cfe2c9224..848a8ce1f803d 100644
--- a/clang-tools-extra/clang-tidy/utils/Aliasing.cpp
+++ b/clang-tools-extra/clang-tidy/utils/Aliasing.cpp
@@ -35,12 +35,11 @@ static bool isPtrOrReferenceForVar(const Stmt *S, const ValueDecl *Var) {
return true;
if (const auto *DS = dyn_cast<DeclStmt>(S)) {
- for (const Decl *D : DS->getDeclGroup()) {
- if (const auto *LeftVar = dyn_cast<VarDecl>(D)) {
- if (LeftVar->hasInit() && LeftVar->getType()->isReferenceType())
- return isAccessForVar(LeftVar->getInit(), Var);
- }
- }
+ for (const Decl *D : DS->getDeclGroup())
+ if (const auto *LeftVar = dyn_cast<VarDecl>(D);
+ LeftVar && LeftVar->hasInit() &&
+ LeftVar->getType()->isReferenceType())
+ return isAccessForVar(LeftVar->getInit(), Var);
} else if (const auto *UnOp = dyn_cast<UnaryOperator>(S)) {
if (UnOp->getOpcode() == UO_AddrOf)
return isAccessForVar(UnOp->getSubExpr(), Var);
diff --git a/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp b/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
index 13781ada37557..7decd18dd25b9 100644
--- a/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
+++ b/clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp
@@ -135,15 +135,14 @@ static bool isStandardPointerConvertible(QualType From, QualType To) {
// be converted to a prvalue of type “pointer to cv B”, where B is a base
// class of D. If B is an inaccessible or ambiguous base class of D, a program
// that necessitates this conversion is ill-formed.
- if (const auto *RD = From->getPointeeCXXRecordDecl()) {
- if (RD->isCompleteDefinition() &&
- isBaseOf(From->getPointeeType().getTypePtr(),
- To->getPointeeType().getTypePtr())) {
- // If B is an inaccessible or ambiguous base class of D, a program
- // that necessitates this conversion is ill-formed
- return isUnambiguousPublicBaseClass(From->getPointeeType().getTypePtr(),
- To->getPointeeType().getTypePtr());
- }
+ if (const auto *RD = From->getPointeeCXXRecordDecl();
+ RD && RD->isCompleteDefinition() &&
+ isBaseOf(From->getPointeeType().getTypePtr(),
+ To->getPointeeType().getTypePtr())) {
+ // If B is an inaccessible or ambiguous base class of D, a program
+ // that necessitates this conversion is ill-formed
+ return isUnambiguousPublicBaseClass(From->getPointeeType().getTypePtr(),
+ To->getPointeeType().getTypePtr());
}
return false;
@@ -255,10 +254,8 @@ static bool isQualificationConvertiblePointer(QualType From, QualType To,
bool ConstUntilI = true;
const auto SatisfiesCVRules = [&I, &ConstUntilI](const QualType &From,
const QualType &To) {
- if (I > 1) {
- if (From.getQualifiers() != To.getQualifiers() && !ConstUntilI)
- return false;
- }
+ if (I > 1 && From.getQualifiers() != To.getQualifiers() && !ConstUntilI)
+ return false;
if (I > 0) {
if (From.isConstQualified() && !To.isConstQualified())
@@ -439,14 +436,12 @@ ExceptionAnalyzer::ExceptionInfo::filterIgnoredExceptions(
const Type *T = ThrownException.getFirst();
if (!T)
continue;
- if (const auto *TD = T->getAsTagDecl()) {
- if (TD->getDeclName().isIdentifier()) {
- if ((IgnoreBadAlloc &&
- (TD->getName() == "bad_alloc" && TD->isInStdNamespace())) ||
- IgnoredTypes.contains(TD->getName()))
- TypesToDelete.push_back(T);
- }
- }
+ if (const auto *TD = T->getAsTagDecl();
+ TD && TD->getDeclName().isIdentifier() &&
+ ((IgnoreBadAlloc &&
+ (TD->getName() == "bad_alloc" && TD->isInStdNamespace())) ||
+ IgnoredTypes.contains(TD->getName())))
+ TypesToDelete.push_back(T);
}
for (const Type *T : TypesToDelete)
ThrownExceptions.erase(T);
diff --git a/clang-tools-extra/clang-tidy/utils/ExprSequence.cpp b/clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
index e75782ed6795a..dd98147441d31 100644
--- a/clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
+++ b/clang-tools-extra/clang-tidy/utils/ExprSequence.cpp
@@ -235,12 +235,13 @@ const Stmt *ExprSequence::getSequenceSuccessor(const Stmt *S) const {
}
if (S == TheSwitchStmt->getConditionVariableDeclStmt())
return TheSwitchStmt->getCond();
- } else if (const auto *TheWhileStmt = dyn_cast<WhileStmt>(Parent)) {
+ } else if (const auto *TheWhileStmt = dyn_cast<WhileStmt>(Parent);
+ TheWhileStmt &&
+ S == TheWhileStmt->getConditionVariableDeclStmt()) {
// While statement: Sequence variable declaration (along with the
// expression used to initialize it) before the evaluation of the
// condition.
- if (S == TheWhileStmt->getConditionVariableDeclStmt())
- return TheWhileStmt->getCond();
+ return TheWhileStmt->getCond();
}
}
diff --git a/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp b/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
index e013742fe6901..e774ce67c4f56 100644
--- a/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
+++ b/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp
@@ -280,13 +280,13 @@ static bool needParensAfterUnaryOperator(const Expr &ExprNode) {
// Format a pointer to an expression: prefix with '*' but simplify
// when it already begins with '&'. Return empty string on failure.
std::string formatDereference(const Expr &ExprNode, const ASTContext &Context) {
- if (const auto *Op = dyn_cast<UnaryOperator>(&ExprNode)) {
- if (Op->getOpcode() == UO_AddrOf) {
- // Strip leading '&'.
- return std::string(
- tooling::fixit::getText(*Op->getSubExpr()->IgnoreParens(), Context));
- }
+ if (const auto *Op = dyn_cast<UnaryOperator>(&ExprNode);
+ Op && Op->getOpcode() == UO_AddrOf) {
+ // Strip leading '&'.
+ return std::string(
+ tooling::fixit::getText(*Op->getSubExpr()->IgnoreParens(), Context));
}
+
StringRef Text = tooling::fixit::getText(ExprNode, Context);
if (Text.empty())
diff --git a/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp b/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
index f87a393f071f3..b7c313693781d 100644
--- a/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
+++ b/clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp
@@ -82,18 +82,16 @@ determineIncludeKind(StringRef CanonicalFile, StringRef IncludeFile,
CanonicalInclude.split("/public/");
StringRef FileCopy = CanonicalFile;
if (FileCopy.consume_front(Parts.first) &&
- FileCopy.consume_back(Parts.second)) {
- // Determine the kind of this inclusion.
- if (FileCopy == "/internal/" || FileCopy == "/proto/")
- return IncludeSorter::IK_MainTUInclude;
- }
+ FileCopy.consume_back(Parts.second) &&
+ // Determine the kind of this inclusion.
+ (FileCopy == "/internal/" || FileCopy == "/proto/"))
+ return IncludeSorter::IK_MainTUInclude;
}
- if (Style == IncludeSorter::IS_Google_ObjC) {
- if (IncludeFile.ends_with(".generated.h") ||
- IncludeFile.ends_with(".proto.h") ||
- IncludeFile.ends_with(".pbobjc.h")) {
- return IncludeSorter::IK_GeneratedInclude;
- }
+ if (Style == IncludeSorter::IS_Google_ObjC &&
+ (IncludeFile.ends_with(".generated.h") ||
+ IncludeFile.ends_with(".proto.h") ||
+ IncludeFile.ends_with(".pbobjc.h"))) {
+ return IncludeSorter::IK_GeneratedInclude;
}
return IncludeSorter::IK_NonSystemInclude;
}
diff --git a/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp b/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp
index 8aa47e452cc61..8bee629614346 100644
--- a/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp
+++ b/clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp
@@ -83,10 +83,10 @@ std::string NamespaceAliaser::getNamespaceName(ASTContext &Context,
StringRef Namespace) const {
const auto *Function = getSurroundingFunction(Context, Statement);
const auto FunctionAliases = AddedAliases.find(Function);
- if (FunctionAliases != AddedAliases.end()) {
- if (FunctionAliases->second.contains(Namespace))
- return FunctionAliases->second.find(Namespace)->getValue();
- }
+ if (FunctionAliases != AddedAliases.end() &&
+ FunctionAliases->second.contains(Namespace))
+ return FunctionAliases->second.find(Namespace)->getValue();
+
return Namespace.str();
}
diff --git a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
index d0a6e9af4fab6..943c21a14c6d9 100644
--- a/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
+++ b/clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp
@@ -69,12 +69,10 @@ class NameLookup {
static const NamedDecl *findDecl(const RecordDecl &RecDecl,
StringRef DeclName) {
- for (const Decl *D : RecDecl.decls()) {
- if (const auto *ND = dyn_cast<NamedDecl>(D)) {
- if (ND->getDeclName().isIdentifier() && ND->getName() == DeclName)
- return ND;
- }
- }
+ for (const Decl *D : RecDecl.decls())
+ if (const auto *ND = dyn_cast<NamedDecl>(D);
+ ND && ND->getDeclName().isIdentifier() && ND->getName() == DeclName)
+ return ND;
return nullptr;
}
More information about the cfe-commits
mailing list