llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-tools-extra Author: Baranov Victor (vbvictor) <details> <summary>Changes</summary> --- Patch is 27.79 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/213939.diff 20 Files Affected: - (modified) clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp (+3-3) - (modified) clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp (+5-6) - (modified) clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp (+16-17) - (modified) clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp (+3-3) - (modified) clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp (+3-4) - (modified) clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp (+10-11) - (modified) clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp (+3-3) - (modified) clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp (+6-6) - (modified) clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp (+4-4) - (modified) clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp (+4-4) - (modified) clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp (+27-30) - (modified) clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp (+3-3) - (modified) clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp (+8-9) - (modified) clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp (+7-8) - (modified) clang-tools-extra/clang-tidy/bugprone/SuspiciousMissingCommaCheck.cpp (+3-4) - (modified) clang-tools-extra/clang-tidy/bugprone/SuspiciousReallocUsageCheck.cpp (+7-6) - (modified) clang-tools-extra/clang-tidy/bugprone/SwappedArgumentsCheck.cpp (+4-4) - (modified) clang-tools-extra/clang-tidy/bugprone/UseAfterMoveCheck.cpp (+3-4) - (modified) clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp (+16-17) - (modified) clang-tools-extra/clang-tidy/cppcoreguidelines/PreferMemberInitializerCheck.cpp (+4-5) ``````````diff diff --git a/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp b/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp index 62fc3b159241d..e892fc0ba70c1 100644 --- a/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp +++ b/clang-tools-extra/clang-tidy/altera/UnrollLoopsCheck.cpp @@ -134,9 +134,9 @@ bool UnrollLoopsCheck::hasKnownBounds(const Stmt *Statement, } } // If increment is unary and not one of ++ and --, loop bounds are unknown. - if (const auto *Op = dyn_cast<UnaryOperator>(Increment)) - if (!Op->isIncrementDecrementOp()) - return false; + if (const auto *Op = dyn_cast<UnaryOperator>(Increment); + Op && !Op->isIncrementDecrementOp()) + return false; if (const auto *BinaryOp = dyn_cast<BinaryOperator>(Conditional)) { const Expr *LHS = BinaryOp->getLHS(); diff --git a/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp b/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp index ba399efa4a8a6..397d6f8e87e83 100644 --- a/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp +++ b/clang-tools-extra/clang-tidy/android/ComparisonInTempFailureRetryCheck.cpp @@ -67,12 +67,11 @@ void ComparisonInTempFailureRetryCheck::check( const SourceLocation Invocation = SM.getImmediateMacroCallerLoc(LocStart); Token Tok; if (!Lexer::getRawToken(SM.getSpellingLoc(Invocation), Tok, SM, Opts, - /*IgnoreWhiteSpace=*/true)) { - if (Tok.getKind() == tok::raw_identifier && - llvm::is_contained(RetryMacros, Tok.getRawIdentifier())) { - RetryMacroName = Tok.getRawIdentifier(); - break; - } + /*IgnoreWhiteSpace=*/true) && + Tok.getKind() == tok::raw_identifier && + llvm::is_contained(RetryMacros, Tok.getRawIdentifier())) { + RetryMacroName = Tok.getRawIdentifier(); + break; } LocStart = Invocation; diff --git a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp index 2f260c36155ff..783944cd1a5a1 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ArgumentCommentCheck.cpp @@ -21,9 +21,9 @@ namespace clang::tidy::bugprone { using utils::lexer::CommentToken; namespace { AST_MATCHER(Decl, isFromStdNamespaceOrSystemHeader) { - if (const auto *D = Node.getDeclContext()->getEnclosingNamespaceContext()) - if (D->isStdNamespace()) - return true; + if (const auto *D = Node.getDeclContext()->getEnclosingNamespaceContext(); + D && D->isStdNamespace()) + return true; if (Node.getLocation().isInvalid()) return false; return Node.getASTContext().getSourceManager().isInSystemHeader( @@ -184,10 +184,11 @@ static const CXXMethodDecl *findMockedMethod(const CXXMethodDecl *Method) { return nullptr; } if (const auto *Next = - dyn_cast_or_null<CXXMethodDecl>(Method->getNextDeclInContext())) { - if (looksLikeExpectMethod(Next) && areMockAndExpectMethods(Method, Next)) - return Method; - } + dyn_cast_or_null<CXXMethodDecl>(Method->getNextDeclInContext()); + Next && looksLikeExpectMethod(Next) && + areMockAndExpectMethods(Method, Next)) + return Method; + return nullptr; } @@ -326,16 +327,14 @@ void ArgumentCommentCheck::checkCallArgs(ASTContext *Ctx, const IdentifierInfo *II = PVD->getIdentifier(); if (!II) continue; - if (FunctionDecl *Template = Callee->getTemplateInstantiationPattern()) { - // Don't warn on arguments for parameters instantiated from template - // parameter packs. If we find more arguments than the template - // definition has, it also means that they correspond to a parameter - // pack. - if (Template->getNumParams() <= I || - Template->getParamDecl(I)->isParameterPack()) { - continue; - } - } + // Don't warn on arguments for parameters instantiated from template + // parameter packs. If we find more arguments than the template + // definition has, it also means that they correspond to a parameter + // pack. + if (FunctionDecl *Template = Callee->getTemplateInstantiationPattern(); + Template && (Template->getNumParams() <= I || + Template->getParamDecl(I)->isParameterPack())) + continue; const CharSourceRange BeforeArgument = MakeFileCharRange(ArgBeginLoc, Args[I]->getBeginLoc()); diff --git a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp index b7c7a3196d787..f7c0024fc1fd1 100644 --- a/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/AssertSideEffectCheck.cpp @@ -39,9 +39,9 @@ AST_MATCHER_P2(Expr, hasSideEffect, bool, CheckFunctionCalls, if (const auto *OpCallExpr = dyn_cast<CXXOperatorCallExpr>(E)) { if (const auto *MethodDecl = - dyn_cast_or_null<CXXMethodDecl>(OpCallExpr->getDirectCallee())) - if (MethodDecl->isConst()) - return false; + dyn_cast_or_null<CXXMethodDecl>(OpCallExpr->getDirectCallee()); + MethodDecl && MethodDecl->isConst()) + return false; const OverloadedOperatorKind OpKind = OpCallExpr->getOperator(); return OpKind == OO_Equal || OpKind == OO_PlusEqual || diff --git a/clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp index 1c70fb482aa2d..5df9aaf9fff22 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ChainedComparisonCheck.cpp @@ -106,10 +106,9 @@ void ChainedComparisonData::extract(const Expr *Op) { return; } - if (const auto *OverloadedOp = dyn_cast<CXXOperatorCallExpr>(Op)) { - if (OverloadedOp->getNumArgs() == 2U) - extract(OverloadedOp); - } + if (const auto *OverloadedOp = dyn_cast<CXXOperatorCallExpr>(Op); + OverloadedOp && OverloadedOp->getNumArgs() == 2U) + extract(OverloadedOp); } ChainedComparisonCheck::ChainedComparisonCheck(StringRef Name, diff --git a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp index 0e0f3b95fffdd..d1ddb186d3b18 100644 --- a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp @@ -1563,14 +1563,13 @@ static bool isIgnoredParameter(const TheCheck &Check, const ParmVarDecl *Node) { }(); LLVM_DEBUG(llvm::dbgs() << "\tType name is '" << NodeTypeName << "'\n"); - if (!NodeTypeName.empty()) { - if (llvm::any_of(Check.IgnoredParameterTypeSuffixes, - [NodeTypeName](StringRef E) { - return !E.empty() && NodeTypeName.ends_with(E); - })) { - LLVM_DEBUG(llvm::dbgs() << "\tType suffix ignored.\n"); - return true; - } + if (!NodeTypeName.empty() && llvm::any_of(Check.IgnoredParameterTypeSuffixes, + [NodeTypeName](StringRef E) { + return !E.empty() && + NodeTypeName.ends_with(E); + })) { + LLVM_DEBUG(llvm::dbgs() << "\tType suffix ignored.\n"); + return true; } return false; @@ -1661,9 +1660,9 @@ class AppearsInSameExpr : public RecursiveASTVisitor<AppearsInSameExpr> { if (!CurrentExprOnlyTreeRoot) return true; - if (auto *PVD = dyn_cast<ParmVarDecl>(DRE->getDecl())) - if (llvm::find(FD->parameters(), PVD)) - ParentExprsForParamRefs[PVD].insert(CurrentExprOnlyTreeRoot); + if (auto *PVD = dyn_cast<ParmVarDecl>(DRE->getDecl()); + PVD && llvm::find(FD->parameters(), PVD)) + ParentExprsForParamRefs[PVD].insert(CurrentExprOnlyTreeRoot); return true; } diff --git a/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp index 9e2214a5c7c82..d082f12723b77 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ForwardingReferenceOverloadCheck.cpp @@ -40,9 +40,9 @@ AST_MATCHER(QualType, isEnableIf) { return true; // Case: enable_if_t< >. if (const auto *TT = BaseType->getAs<TypedefType>()) if (const NestedNameSpecifier Q = TT->getQualifier(); - Q.getKind() == NestedNameSpecifier::Kind::Type) - if (CheckTemplate(Q.getAsType()->getAs<TemplateSpecializationType>())) - return true; // Case: enable_if< >::type. + Q.getKind() == NestedNameSpecifier::Kind::Type && + CheckTemplate(Q.getAsType()->getAs<TemplateSpecializationType>())) + return true; // Case: enable_if< >::type. return false; } AST_MATCHER_P(TemplateTypeParmDecl, hasDefaultArgument, diff --git a/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp index 5b319d11f84b1..88bd2b708d4cb 100644 --- a/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/InfiniteLoopCheck.cpp @@ -225,14 +225,14 @@ static bool overlap(ArrayRef<CallGraphNode *> SCC, /// returns true iff `Cond` involves at least one static local variable. static bool hasStaticLocalVariable(const Stmt *Cond) { if (const auto *DRE = dyn_cast<DeclRefExpr>(Cond)) { - if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl())) - if (VD->isStaticLocal()) - return true; + if (const auto *VD = dyn_cast<VarDecl>(DRE->getDecl()); + VD && VD->isStaticLocal()) + return true; if (const auto *BD = dyn_cast<BindingDecl>(DRE->getDecl())) - if (const auto *DD = dyn_cast<DecompositionDecl>(BD->getDecomposedDecl())) - if (DD->isStaticLocal()) - return true; + if (const auto *DD = dyn_cast<DecompositionDecl>(BD->getDecomposedDecl()); + DD && DD->isStaticLocal()) + return true; } return llvm::any_of(Cond->children(), [](const Stmt *Child) { diff --git a/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp index 09d84391d8ba3..abe27388a3f8c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/InvalidEnumDefaultInitializationCheck.cpp @@ -41,10 +41,10 @@ AST_MATCHER(EnumDecl, isCompleteAndHasNoZeroValue) { AST_MATCHER(Expr, isEmptyInit) { if (isa<CXXScalarValueInitExpr, ImplicitValueInitExpr>(&Node)) return true; - if (const auto *Init = dyn_cast<InitListExpr>(&Node)) { - if (Init->getNumInits() == 0) - return true; - } + if (const auto *Init = dyn_cast<InitListExpr>(&Node); + Init && Init->getNumInits() == 0) + return true; + return false; } diff --git a/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp index 051f0b569c66b..626237ea1e27c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/MissingEndComparisonCheck.cpp @@ -101,10 +101,10 @@ static std::optional<std::string> getStandardEndText(ASTContext &Context, unsigned EndIdx = 1; const Expr *FirstArg = Call->getArg(0); if (const auto *Record = - FirstArg->getType().getNonReferenceType()->getAsCXXRecordDecl()) { - if (Record->getIdentifier() && Record->getName().ends_with("_policy")) - EndIdx = 2; - } + FirstArg->getType().getNonReferenceType()->getAsCXXRecordDecl(); + Record && Record->getIdentifier() && + Record->getName().ends_with("_policy")) + EndIdx = 2; if (Call->getNumArgs() <= EndIdx) return std::nullopt; diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index dc09fabffed1e..9e462d33bfd0e 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -67,14 +67,14 @@ static unsigned getLength(const Expr *E, E = E->IgnoreImpCasts(); if (const auto *LengthDRE = dyn_cast<DeclRefExpr>(E)) - if (const auto *LengthVD = dyn_cast<VarDecl>(LengthDRE->getDecl())) - if (!isa<ParmVarDecl>(LengthVD)) - if (const Expr *LengthInit = LengthVD->getInit(); - LengthInit && !LengthInit->isValueDependent()) { - Expr::EvalResult Length; - if (LengthInit->EvaluateAsInt(Length, *Result.Context)) - return Length.Val.getInt().getZExtValue(); - } + if (const auto *LengthVD = dyn_cast<VarDecl>(LengthDRE->getDecl()); + LengthVD && !isa<ParmVarDecl>(LengthVD)) + if (const Expr *LengthInit = LengthVD->getInit(); + LengthInit && !LengthInit->isValueDependent()) { + Expr::EvalResult Length; + if (LengthInit->EvaluateAsInt(Length, *Result.Context)) + return Length.Val.getInt().getZExtValue(); + } if (const auto *LengthIL = dyn_cast<IntegerLiteral>(E)) return LengthIL->getValue().getZExtValue(); @@ -107,9 +107,9 @@ static const CallExpr *getStrlenExpr(const MatchFinder::MatchResult &Result) { Result.Nodes.getNodeAs<CallExpr>(WrongLengthExprName)) if (const Decl *D = StrlenExpr->getCalleeDecl()) if (const FunctionDecl *FD = D->getAsFunction()) - if (const IdentifierInfo *II = FD->getIdentifier()) - if (II->isStr("strlen") || II->isStr("wcslen")) - return StrlenExpr; + if (const IdentifierInfo *II = FD->getIdentifier(); + II && (II->isStr("strlen") || II->isStr("wcslen"))) + return StrlenExpr; return nullptr; } @@ -233,9 +233,9 @@ isGivenLengthEqualToSrcLength(const MatchFinder::MatchResult &Result) { if (GivenLength != 0 && SrcLength != 0 && GivenLength == SrcLength) return true; - if (const auto *LengthExpr = Result.Nodes.getNodeAs<Expr>(LengthExprName)) - if (isa<BinaryOperator>(LengthExpr->IgnoreParenImpCasts())) - return false; + if (const auto *LengthExpr = Result.Nodes.getNodeAs<Expr>(LengthExprName); + LengthExpr && isa<BinaryOperator>(LengthExpr->IgnoreParenImpCasts())) + return false; // Check the strlen()'s argument's 'VarDecl' is equal to the source 'VarDecl'. if (const CallExpr *StrlenCE = getStrlenExpr(Result)) @@ -324,21 +324,18 @@ static void lengthExprHandle(const Expr *LengthExpr, const Expr *LhsExpr = BO->getLHS()->IgnoreImpCasts(); const Expr *RhsExpr = BO->getRHS()->IgnoreImpCasts(); - if (const auto *LhsIL = dyn_cast<IntegerLiteral>(LhsExpr)) { - if (LhsIL->getValue().getZExtValue() == 1) { - Diag << FixItHint::CreateRemoval( - {LhsIL->getBeginLoc(), - RhsExpr->getBeginLoc().getLocWithOffset(-1)}); - return; - } + if (const auto *LhsIL = dyn_cast<IntegerLiteral>(LhsExpr); + LhsIL && LhsIL->getValue().getZExtValue() == 1) { + Diag << FixItHint::CreateRemoval( + {LhsIL->getBeginLoc(), RhsExpr->getBeginLoc().getLocWithOffset(-1)}); + return; } - if (const auto *RhsIL = dyn_cast<IntegerLiteral>(RhsExpr)) { - if (RhsIL->getValue().getZExtValue() == 1) { - Diag << FixItHint::CreateRemoval( - {LhsExpr->getEndLoc().getLocWithOffset(1), RhsIL->getEndLoc()}); - return; - } + if (const auto *RhsIL = dyn_cast<IntegerLiteral>(RhsExpr); + RhsIL && RhsIL->getValue().getZExtValue() == 1) { + Diag << FixItHint::CreateRemoval( + {LhsExpr->getEndLoc().getLocWithOffset(1), RhsIL->getEndLoc()}); + return; } } @@ -912,9 +909,9 @@ void NotNullTerminatedResultCheck::memcpySFix( void NotNullTerminatedResultCheck::memchrFix( StringRef Name, const MatchFinder::MatchResult &Result) { const auto *FunctionExpr = Result.Nodes.getNodeAs<CallExpr>(FunctionExprName); - if (const auto *GivenCL = dyn_cast<CharacterLiteral>(FunctionExpr->getArg(1))) - if (GivenCL->getValue() != 0) - return; + if (const auto *GivenCL = dyn_cast<CharacterLiteral>(FunctionExpr->getArg(1)); + GivenCL && GivenCL->getValue() != 0) + return; const auto Diag = diag(FunctionExpr->getArg(2)->IgnoreParenCasts()->getBeginLoc(), diff --git a/clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp index dda687ff7ade5..1e3615f9ac971 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ReturnConstRefFromParameterCheck.cpp @@ -90,9 +90,9 @@ static const Decl *findRVRefOverload(const FunctionDecl &FD, for (const Decl *Overload : LookupResult) { if (Overload == &FD) continue; - if (const auto *O = dyn_cast<FunctionDecl>(Overload)) - if (hasSameParameterTypes(FD, *O, PD)) - return O; + if (const auto *O = dyn_cast<FunctionDecl>(Overload); + O && hasSameParameterTypes(FD, *O, PD)) + return O; } return nullptr; } diff --git a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp index 12b5a5de55618..970cd0f39a9ce 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SizeofExpressionCheck.cpp @@ -375,15 +375,14 @@ void SizeofExpressionCheck::check(const MatchFinder::MatchResult &Result) { const auto *SzOfExpr = Result.Nodes.getNodeAs<Expr>("sizeof-expr"); - if (const auto *Type = dyn_cast<ArrayType>(SizeofArgTy)) { - // check if the array element size is larger than one. If true, - // the size of the array is higher than the number of elements - if (!getSizeOfType(Ctx, Type->getElementType().getTypePtr()).isOne()) { - diag(SzOfExpr->getBeginLoc(), - "suspicious usage of 'sizeof' in the loop") - << SzOfExpr->getSourceRange(); - } - } + // check if the array element size is larger than one. If true, + // the size of the array is higher than the number of elements + if (const auto *Type = dyn_cast<ArrayType>(SizeofArgTy); + Type && + !getSizeOfType(Ctx, Type->getElementType().getTypePtr()).isOne()) + diag(SzOfExpr->getBeginLoc(), "suspicious usage of 'sizeof' in the loop") + << SzOfExpr->getSourceRange(); + } else if (const auto *E = Result.Nodes.getNodeAs<Expr>("sizeof-pointer")) { diag(E->getBeginLoc(), "suspicious usage of 'sizeof()' on an expression " "of pointer type") diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp index 7890afb41addb..4247c9050009d 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousMemoryComparisonCheck.cpp @@ -52,14 +52,13 @@ void SuspiciousMemoryComparisonCheck::check( if (PointeeType->isRecordType()) { if (const RecordDecl *RD = PointeeType->getAsRecordDecl()->getDefinition()) { - if (const auto *CXXDecl = dyn_cast<CXXRecordDecl>(RD)) { - if (!CXXDecl->isStandardLayout()) { - diag(CE->getBeginLoc(), - "comparing object representation of non-standard-layout type " - "%0; consider using a comparison operator instead") - << PointeeQualifiedType; - break; - } + if (const auto *CXXDecl = dyn_cast<CXXRecordDecl>(RD); + CXXDecl && !CXXDecl->isStandardLayout()) { + diag(CE->getBeginLoc(), + "comparing object representation of non-standard-layout type " + "%0; consider using a comparison operator instead") + << PointeeQualifiedType; + break; }... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/213939 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
