[clang-tools-extra] [clang-tidy][NFC] Apply readability-redundant-nested-if 3/N (PR #214693)
via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 7 03:43:52 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang-tidy
Author: Baranov Victor (vbvictor)
<details>
<summary>Changes</summary>
---
Patch is 30.75 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/214693.diff
19 Files Affected:
- (modified) clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp (+4-5)
- (modified) clang-tools-extra/clang-tidy/performance/UseStdMoveCheck.cpp (+2-4)
- (modified) clang-tools-extra/clang-tidy/readability/ContainerSizeEmptyCheck.cpp (+6-7)
- (modified) clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp (+6-6)
- (modified) clang-tools-extra/clang-tidy/readability/MagicNumbersCheck.cpp (+4-3)
- (modified) clang-tools-extra/clang-tidy/readability/MakeMemberFunctionConstCheck.cpp (+6-7)
- (modified) clang-tools-extra/clang-tidy/readability/NamedParameterCheck.cpp (+4-3)
- (modified) clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp (+3-4)
- (modified) clang-tools-extra/clang-tidy/readability/RedundantStringInitCheck.cpp (+11-11)
- (modified) clang-tools-extra/clang-tidy/readability/SimplifyBooleanExprCheck.cpp (+51-56)
- (modified) clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp (+5-6)
- (modified) clang-tools-extra/clang-tidy/utils/ASTUtils.cpp (+10-11)
- (modified) clang-tools-extra/clang-tidy/utils/Aliasing.cpp (+5-6)
- (modified) clang-tools-extra/clang-tidy/utils/ExceptionAnalyzer.cpp (+16-21)
- (modified) clang-tools-extra/clang-tidy/utils/ExprSequence.cpp (+4-3)
- (modified) clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp (+6-6)
- (modified) clang-tools-extra/clang-tidy/utils/IncludeSorter.cpp (+9-11)
- (modified) clang-tools-extra/clang-tidy/utils/NamespaceAliaser.cpp (+4-4)
- (modified) clang-tools-extra/clang-tidy/utils/RenamerClangTidyCheck.cpp (+4-6)
``````````diff
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 4cc72bb14917a..056360840969a 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) ||
- ...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/214693
More information about the cfe-commits
mailing list