https://github.com/capitan-davide updated https://github.com/llvm/llvm-project/pull/158706
>From 518ae97641b488ca8c07a703c88f2a585b55594b Mon Sep 17 00:00:00 2001 From: Davide Cunial <[email protected]> Date: Tue, 16 Sep 2025 07:19:34 +0200 Subject: [PATCH 1/3] [clang-tidy][NFC] Enable 'readability-simplify-boolean-expr' check --- clang-tools-extra/clang-tidy/.clang-tidy | 1 - .../EasilySwappableParametersCheck.cpp | 9 +++---- .../bugprone/NotNullTerminatedResultCheck.cpp | 11 +++----- .../bugprone/SuspiciousEnumUsageCheck.cpp | 2 +- .../google/AvoidNSObjectNewCheck.cpp | 5 +--- .../ImplementationInNamespaceCheck.cpp | 4 +-- .../clang-tidy/misc/ConstCorrectnessCheck.cpp | 3 +-- .../clang-tidy/misc/IncludeCleanerCheck.cpp | 2 +- .../misc/NewDeleteOverloadsCheck.cpp | 7 ++---- .../misc/RedundantExpressionCheck.cpp | 25 +++++++------------ .../modernize/UseTrailingReturnTypeCheck.cpp | 2 +- .../ImplicitBoolConversionCheck.cpp | 2 +- .../SuspiciousCallArgumentCheck.cpp | 8 +++--- 13 files changed, 28 insertions(+), 53 deletions(-) diff --git a/clang-tools-extra/clang-tidy/.clang-tidy b/clang-tools-extra/clang-tidy/.clang-tidy index d290901730405..4423f1c3dcd64 100644 --- a/clang-tools-extra/clang-tidy/.clang-tidy +++ b/clang-tools-extra/clang-tidy/.clang-tidy @@ -29,7 +29,6 @@ Checks: > -readability-magic-numbers, -readability-named-parameter, -readability-qualified-auto, - -readability-simplify-boolean-expr, -readability-static-definition-in-anonymous-namespace, -readability-suspicious-call-argument, -readability-use-anyofallof diff --git a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp index c426b32ccade3..566de24ea3d1f 100644 --- a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp @@ -1880,12 +1880,9 @@ static bool prefixSuffixCoverUnderThreshold(std::size_t Threshold, padStringAtBegin(S1PadB, BiggerLength); padStringAtBegin(S2PadB, BiggerLength); - if (isCommonSuffixWithoutSomeCharacters( - Threshold, StringRef{S1PadB.begin(), BiggerLength}, - StringRef{S2PadB.begin(), BiggerLength})) - return true; - - return false; + return isCommonSuffixWithoutSomeCharacters( + Threshold, StringRef{S1PadB.begin(), BiggerLength}, + StringRef{S2PadB.begin(), BiggerLength}); } } // namespace filter diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index 203170d55f694..08823e73adf6b 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -268,10 +268,8 @@ static bool isDestCapacityOverflows(const MatchFinder::MatchResult &Result) { // Assume that the destination array's capacity cannot overflow if the // expression of the memory allocation contains '+ 1'. StringRef DestCapacityExprStr = exprToStr(DestCapacityExpr, Result); - if (DestCapacityExprStr.contains("+1") || DestCapacityExprStr.contains("+ 1")) - return false; - - return true; + return !(DestCapacityExprStr.contains("+1") || + DestCapacityExprStr.contains("+ 1")); } static bool @@ -533,10 +531,7 @@ AST_MATCHER_P(Expr, hasDefinition, ast_matchers::internal::Matcher<Expr>, hasLHS(declRefExpr(to(varDecl(equalsBoundNode(VarDeclName))))), hasRHS(ignoringImpCasts(InnerMatcher)))))))); - if (DREHasDefinition.matches(*SimpleNode, Finder, Builder)) - return true; - - return false; + return DREHasDefinition.matches(*SimpleNode, Finder, Builder); } } // namespace diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp index f2067bec001cc..fd5dca835b676 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp @@ -100,7 +100,7 @@ static bool isPossiblyBitMask(const EnumDecl *EnumDec) { return NonPowOfTwoCounter >= 1 && NonPowOfTwoCounter <= 2 && NonPowOfTwoCounter < EnumLen / 2 && (VR.MaxVal - VR.MinVal != EnumLen - 1) && - !(NonPowOfTwoCounter == 1 && isMaxValAllBitSetLiteral(EnumDec)); + (NonPowOfTwoCounter != 1 || !isMaxValAllBitSetLiteral(EnumDec)); } SuspiciousEnumUsageCheck::SuspiciousEnumUsageCheck(StringRef Name, diff --git a/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp b/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp index adcbf245ef7a3..cc1b01fa78908 100644 --- a/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp +++ b/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp @@ -27,10 +27,7 @@ static bool isMessageExpressionInsideMacro(const ObjCMessageExpr *Expr) { return true; SourceLocation SelectorLocation = Expr->getSelectorStartLoc(); - if (SelectorLocation.isMacroID()) - return true; - - return false; + return SelectorLocation.isMacroID(); } // Walk up the class hierarchy looking for an -init method, returning true diff --git a/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp b/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp index c2fbc4422e5d2..6325f434be4ce 100644 --- a/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp +++ b/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp @@ -39,7 +39,7 @@ void ImplementationInNamespaceCheck::check( } // Enforce that the namespace is the result of macro expansion - if (Result.SourceManager->isMacroBodyExpansion(NS->getLocation()) == false) { + if (!Result.SourceManager->isMacroBodyExpansion(NS->getLocation())) { diag(NS->getLocation(), "the outermost namespace should be the '%0' macro") << RequiredNamespaceDeclMacroName; return; @@ -55,7 +55,7 @@ void ImplementationInNamespaceCheck::check( } // Lastly, make sure the namespace name actually has the __llvm_libc prefix - if (NS->getName().starts_with(RequiredNamespaceRefStart) == false) { + if (!NS->getName().starts_with(RequiredNamespaceRefStart)) { diag(NS->getLocation(), "the '%0' macro expansion should start with '%1'") << RequiredNamespaceDeclMacroName << RequiredNamespaceRefStart; return; diff --git a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp index b32507d66cbac..348e64ccd00a7 100644 --- a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp @@ -54,8 +54,7 @@ ConstCorrectnessCheck::ConstCorrectnessCheck(StringRef Name, AllowedTypes( utils::options::parseStringList(Options.get("AllowedTypes", ""))) { - if (AnalyzeValues == false && AnalyzeReferences == false && - AnalyzePointers == false) + if (!AnalyzeValues && !AnalyzeReferences && !AnalyzePointers) this->configurationDiag( "The check 'misc-const-correctness' will not " "perform any analysis because 'AnalyzeValues', " diff --git a/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp b/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp index 813005b892ed7..74ef936ff8e95 100644 --- a/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp @@ -70,7 +70,7 @@ IncludeCleanerCheck::IncludeCleanerCheck(StringRef Name, IgnoreHeadersRegex.emplace_back(HeaderSuffix); } - if (UnusedIncludes == false && MissingIncludes == false) + if (!UnusedIncludes && !MissingIncludes) this->configurationDiag("The check 'misc-include-cleaner' will not " "perform any analysis because 'UnusedIncludes' and " "'MissingIncludes' are both false."); diff --git a/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp b/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp index 2837f40bc49b8..9adf4fb207804 100644 --- a/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp @@ -52,11 +52,8 @@ AST_MATCHER(FunctionDecl, isPlacementOverload) { const auto *FPT = Node.getType()->castAs<FunctionProtoType>(); ASTContext &Ctx = Node.getASTContext(); - if (Ctx.getLangOpts().SizedDeallocation && - Ctx.hasSameType(FPT->getParamType(1), Ctx.getSizeType())) - return false; - - return true; + return !(Ctx.getLangOpts().SizedDeallocation && + Ctx.hasSameType(FPT->getParamType(1), Ctx.getSizeType())); } } // namespace diff --git a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp index 107eda2e98f27..0debf985121c3 100644 --- a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp @@ -196,12 +196,9 @@ static bool areExclusiveRanges(BinaryOperatorKind OpcodeLHS, // Handle the case where constants are off by one: x > 5 && x < 6. APSInt ValueLhsPlus1; - if (OpcodeLHS == BO_GT && OpcodeRHS == BO_LT && - incrementWithoutOverflow(ValueLHS, ValueLhsPlus1) && - APSInt::compareValues(ValueLhsPlus1, ValueRHS) == 0) - return true; - - return false; + return OpcodeLHS == BO_GT && OpcodeRHS == BO_LT && + incrementWithoutOverflow(ValueLHS, ValueLhsPlus1) && + APSInt::compareValues(ValueLhsPlus1, ValueRHS) == 0; } // Returns whether the ranges covered by the union of both relational @@ -726,12 +723,10 @@ static bool areSidesBinaryConstExpressions(const BinaryOperator *&BinOp, return !E->isValueDependent() && E->isIntegerConstantExpr(*AstCtx); }; - if ((IsIntegerConstantExpr(LhsBinOp->getLHS()) || - IsIntegerConstantExpr(LhsBinOp->getRHS())) && - (IsIntegerConstantExpr(RhsBinOp->getLHS()) || - IsIntegerConstantExpr(RhsBinOp->getRHS()))) - return true; - return false; + return (IsIntegerConstantExpr(LhsBinOp->getLHS()) || + IsIntegerConstantExpr(LhsBinOp->getRHS())) && + (IsIntegerConstantExpr(RhsBinOp->getLHS()) || + IsIntegerConstantExpr(RhsBinOp->getRHS())); } static bool areSidesBinaryConstExpressionsOrDefinesOrIntegerConstant( @@ -747,10 +742,8 @@ static bool areSidesBinaryConstExpressionsOrDefinesOrIntegerConstant( auto IsDefineExpr = [AstCtx](const Expr *E) { const SourceRange Lsr = E->getSourceRange(); - if (!Lsr.getBegin().isMacroID() || E->isValueDependent() || - !E->isIntegerConstantExpr(*AstCtx)) - return false; - return true; + return !(!Lsr.getBegin().isMacroID() || E->isValueDependent() || + !E->isIntegerConstantExpr(*AstCtx)); }; return IsDefineExpr(Lhs) || IsDefineExpr(Rhs); diff --git a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp index 82f64096cbec1..2bb15169b4659 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp @@ -459,7 +459,7 @@ UseTrailingReturnTypeCheck::UseTrailingReturnTypeCheck( TransformFunctions(Options.get("TransformFunctions", true)), TransformLambdas(Options.get("TransformLambdas", TransformLambda::All)) { - if (TransformFunctions == false && TransformLambdas == TransformLambda::None) + if (!TransformFunctions && TransformLambdas == TransformLambda::None) this->configurationDiag( "The check 'modernize-use-trailing-return-type' will not perform any " "analysis because 'TransformFunctions' and 'TransformLambdas' are " diff --git a/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp b/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp index 6b10e6b206a31..bd91fa6eec6c9 100644 --- a/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp @@ -209,7 +209,7 @@ getEquivalentForBoolLiteral(const CXXBoolLiteralExpr *BoolLiteral, // Prior to C++11, false literal could be implicitly converted to pointer. if (!Context.getLangOpts().CPlusPlus11 && (DestType->isPointerType() || DestType->isMemberPointerType()) && - BoolLiteral->getValue() == false) { + !BoolLiteral->getValue()) { return "0"; } diff --git a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp index a80637dee18f4..8ac5de0e10edb 100644 --- a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp @@ -413,14 +413,12 @@ static bool areTypesCompatible(QualType ArgType, QualType ParamType, // Arithmetic types are interconvertible, except scoped enums. if (ParamType->isArithmeticType() && ArgType->isArithmeticType()) { - if ((ParamType->isEnumeralType() && ParamType->castAsCanonical<EnumType>() + return !( + (ParamType->isEnumeralType() && ParamType->castAsCanonical<EnumType>() ->getOriginalDecl() ->isScoped()) || (ArgType->isEnumeralType() && - ArgType->castAsCanonical<EnumType>()->getOriginalDecl()->isScoped())) - return false; - - return true; + ArgType->castAsCanonical<EnumType>()->getOriginalDecl()->isScoped())); } // Check if the argument and the param are both function types (the parameter >From ad77a686741e969525d5228c18ba3cf283c14fb0 Mon Sep 17 00:00:00 2001 From: Davide Cunial <[email protected]> Date: Tue, 28 Oct 2025 20:12:29 +0100 Subject: [PATCH 2/3] Revert "[clang-tidy][NFC] Enable 'readability-simplify-boolean-expr' check" This reverts commit 518ae97641b488ca8c07a703c88f2a585b55594b. --- clang-tools-extra/clang-tidy/.clang-tidy | 1 + .../EasilySwappableParametersCheck.cpp | 9 ++++--- .../bugprone/NotNullTerminatedResultCheck.cpp | 11 +++++--- .../bugprone/SuspiciousEnumUsageCheck.cpp | 2 +- .../google/AvoidNSObjectNewCheck.cpp | 5 +++- .../ImplementationInNamespaceCheck.cpp | 4 +-- .../clang-tidy/misc/ConstCorrectnessCheck.cpp | 3 ++- .../clang-tidy/misc/IncludeCleanerCheck.cpp | 2 +- .../misc/NewDeleteOverloadsCheck.cpp | 7 ++++-- .../misc/RedundantExpressionCheck.cpp | 25 ++++++++++++------- .../modernize/UseTrailingReturnTypeCheck.cpp | 2 +- .../ImplicitBoolConversionCheck.cpp | 2 +- .../SuspiciousCallArgumentCheck.cpp | 8 +++--- 13 files changed, 53 insertions(+), 28 deletions(-) diff --git a/clang-tools-extra/clang-tidy/.clang-tidy b/clang-tools-extra/clang-tidy/.clang-tidy index 4423f1c3dcd64..d290901730405 100644 --- a/clang-tools-extra/clang-tidy/.clang-tidy +++ b/clang-tools-extra/clang-tidy/.clang-tidy @@ -29,6 +29,7 @@ Checks: > -readability-magic-numbers, -readability-named-parameter, -readability-qualified-auto, + -readability-simplify-boolean-expr, -readability-static-definition-in-anonymous-namespace, -readability-suspicious-call-argument, -readability-use-anyofallof diff --git a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp index 566de24ea3d1f..c426b32ccade3 100644 --- a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp @@ -1880,9 +1880,12 @@ static bool prefixSuffixCoverUnderThreshold(std::size_t Threshold, padStringAtBegin(S1PadB, BiggerLength); padStringAtBegin(S2PadB, BiggerLength); - return isCommonSuffixWithoutSomeCharacters( - Threshold, StringRef{S1PadB.begin(), BiggerLength}, - StringRef{S2PadB.begin(), BiggerLength}); + if (isCommonSuffixWithoutSomeCharacters( + Threshold, StringRef{S1PadB.begin(), BiggerLength}, + StringRef{S2PadB.begin(), BiggerLength})) + return true; + + return false; } } // namespace filter diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index 08823e73adf6b..203170d55f694 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -268,8 +268,10 @@ static bool isDestCapacityOverflows(const MatchFinder::MatchResult &Result) { // Assume that the destination array's capacity cannot overflow if the // expression of the memory allocation contains '+ 1'. StringRef DestCapacityExprStr = exprToStr(DestCapacityExpr, Result); - return !(DestCapacityExprStr.contains("+1") || - DestCapacityExprStr.contains("+ 1")); + if (DestCapacityExprStr.contains("+1") || DestCapacityExprStr.contains("+ 1")) + return false; + + return true; } static bool @@ -531,7 +533,10 @@ AST_MATCHER_P(Expr, hasDefinition, ast_matchers::internal::Matcher<Expr>, hasLHS(declRefExpr(to(varDecl(equalsBoundNode(VarDeclName))))), hasRHS(ignoringImpCasts(InnerMatcher)))))))); - return DREHasDefinition.matches(*SimpleNode, Finder, Builder); + if (DREHasDefinition.matches(*SimpleNode, Finder, Builder)) + return true; + + return false; } } // namespace diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp index fd5dca835b676..f2067bec001cc 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp @@ -100,7 +100,7 @@ static bool isPossiblyBitMask(const EnumDecl *EnumDec) { return NonPowOfTwoCounter >= 1 && NonPowOfTwoCounter <= 2 && NonPowOfTwoCounter < EnumLen / 2 && (VR.MaxVal - VR.MinVal != EnumLen - 1) && - (NonPowOfTwoCounter != 1 || !isMaxValAllBitSetLiteral(EnumDec)); + !(NonPowOfTwoCounter == 1 && isMaxValAllBitSetLiteral(EnumDec)); } SuspiciousEnumUsageCheck::SuspiciousEnumUsageCheck(StringRef Name, diff --git a/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp b/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp index cc1b01fa78908..adcbf245ef7a3 100644 --- a/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp +++ b/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp @@ -27,7 +27,10 @@ static bool isMessageExpressionInsideMacro(const ObjCMessageExpr *Expr) { return true; SourceLocation SelectorLocation = Expr->getSelectorStartLoc(); - return SelectorLocation.isMacroID(); + if (SelectorLocation.isMacroID()) + return true; + + return false; } // Walk up the class hierarchy looking for an -init method, returning true diff --git a/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp b/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp index 6325f434be4ce..c2fbc4422e5d2 100644 --- a/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp +++ b/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp @@ -39,7 +39,7 @@ void ImplementationInNamespaceCheck::check( } // Enforce that the namespace is the result of macro expansion - if (!Result.SourceManager->isMacroBodyExpansion(NS->getLocation())) { + if (Result.SourceManager->isMacroBodyExpansion(NS->getLocation()) == false) { diag(NS->getLocation(), "the outermost namespace should be the '%0' macro") << RequiredNamespaceDeclMacroName; return; @@ -55,7 +55,7 @@ void ImplementationInNamespaceCheck::check( } // Lastly, make sure the namespace name actually has the __llvm_libc prefix - if (!NS->getName().starts_with(RequiredNamespaceRefStart)) { + if (NS->getName().starts_with(RequiredNamespaceRefStart) == false) { diag(NS->getLocation(), "the '%0' macro expansion should start with '%1'") << RequiredNamespaceDeclMacroName << RequiredNamespaceRefStart; return; diff --git a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp index 348e64ccd00a7..b32507d66cbac 100644 --- a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp @@ -54,7 +54,8 @@ ConstCorrectnessCheck::ConstCorrectnessCheck(StringRef Name, AllowedTypes( utils::options::parseStringList(Options.get("AllowedTypes", ""))) { - if (!AnalyzeValues && !AnalyzeReferences && !AnalyzePointers) + if (AnalyzeValues == false && AnalyzeReferences == false && + AnalyzePointers == false) this->configurationDiag( "The check 'misc-const-correctness' will not " "perform any analysis because 'AnalyzeValues', " diff --git a/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp b/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp index 74ef936ff8e95..813005b892ed7 100644 --- a/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp @@ -70,7 +70,7 @@ IncludeCleanerCheck::IncludeCleanerCheck(StringRef Name, IgnoreHeadersRegex.emplace_back(HeaderSuffix); } - if (!UnusedIncludes && !MissingIncludes) + if (UnusedIncludes == false && MissingIncludes == false) this->configurationDiag("The check 'misc-include-cleaner' will not " "perform any analysis because 'UnusedIncludes' and " "'MissingIncludes' are both false."); diff --git a/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp b/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp index 9adf4fb207804..2837f40bc49b8 100644 --- a/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp @@ -52,8 +52,11 @@ AST_MATCHER(FunctionDecl, isPlacementOverload) { const auto *FPT = Node.getType()->castAs<FunctionProtoType>(); ASTContext &Ctx = Node.getASTContext(); - return !(Ctx.getLangOpts().SizedDeallocation && - Ctx.hasSameType(FPT->getParamType(1), Ctx.getSizeType())); + if (Ctx.getLangOpts().SizedDeallocation && + Ctx.hasSameType(FPT->getParamType(1), Ctx.getSizeType())) + return false; + + return true; } } // namespace diff --git a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp index 0debf985121c3..107eda2e98f27 100644 --- a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp @@ -196,9 +196,12 @@ static bool areExclusiveRanges(BinaryOperatorKind OpcodeLHS, // Handle the case where constants are off by one: x > 5 && x < 6. APSInt ValueLhsPlus1; - return OpcodeLHS == BO_GT && OpcodeRHS == BO_LT && - incrementWithoutOverflow(ValueLHS, ValueLhsPlus1) && - APSInt::compareValues(ValueLhsPlus1, ValueRHS) == 0; + if (OpcodeLHS == BO_GT && OpcodeRHS == BO_LT && + incrementWithoutOverflow(ValueLHS, ValueLhsPlus1) && + APSInt::compareValues(ValueLhsPlus1, ValueRHS) == 0) + return true; + + return false; } // Returns whether the ranges covered by the union of both relational @@ -723,10 +726,12 @@ static bool areSidesBinaryConstExpressions(const BinaryOperator *&BinOp, return !E->isValueDependent() && E->isIntegerConstantExpr(*AstCtx); }; - return (IsIntegerConstantExpr(LhsBinOp->getLHS()) || - IsIntegerConstantExpr(LhsBinOp->getRHS())) && - (IsIntegerConstantExpr(RhsBinOp->getLHS()) || - IsIntegerConstantExpr(RhsBinOp->getRHS())); + if ((IsIntegerConstantExpr(LhsBinOp->getLHS()) || + IsIntegerConstantExpr(LhsBinOp->getRHS())) && + (IsIntegerConstantExpr(RhsBinOp->getLHS()) || + IsIntegerConstantExpr(RhsBinOp->getRHS()))) + return true; + return false; } static bool areSidesBinaryConstExpressionsOrDefinesOrIntegerConstant( @@ -742,8 +747,10 @@ static bool areSidesBinaryConstExpressionsOrDefinesOrIntegerConstant( auto IsDefineExpr = [AstCtx](const Expr *E) { const SourceRange Lsr = E->getSourceRange(); - return !(!Lsr.getBegin().isMacroID() || E->isValueDependent() || - !E->isIntegerConstantExpr(*AstCtx)); + if (!Lsr.getBegin().isMacroID() || E->isValueDependent() || + !E->isIntegerConstantExpr(*AstCtx)) + return false; + return true; }; return IsDefineExpr(Lhs) || IsDefineExpr(Rhs); diff --git a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp index 2bb15169b4659..82f64096cbec1 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp @@ -459,7 +459,7 @@ UseTrailingReturnTypeCheck::UseTrailingReturnTypeCheck( TransformFunctions(Options.get("TransformFunctions", true)), TransformLambdas(Options.get("TransformLambdas", TransformLambda::All)) { - if (!TransformFunctions && TransformLambdas == TransformLambda::None) + if (TransformFunctions == false && TransformLambdas == TransformLambda::None) this->configurationDiag( "The check 'modernize-use-trailing-return-type' will not perform any " "analysis because 'TransformFunctions' and 'TransformLambdas' are " diff --git a/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp b/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp index bd91fa6eec6c9..6b10e6b206a31 100644 --- a/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp @@ -209,7 +209,7 @@ getEquivalentForBoolLiteral(const CXXBoolLiteralExpr *BoolLiteral, // Prior to C++11, false literal could be implicitly converted to pointer. if (!Context.getLangOpts().CPlusPlus11 && (DestType->isPointerType() || DestType->isMemberPointerType()) && - !BoolLiteral->getValue()) { + BoolLiteral->getValue() == false) { return "0"; } diff --git a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp index 8ac5de0e10edb..a80637dee18f4 100644 --- a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp @@ -413,12 +413,14 @@ static bool areTypesCompatible(QualType ArgType, QualType ParamType, // Arithmetic types are interconvertible, except scoped enums. if (ParamType->isArithmeticType() && ArgType->isArithmeticType()) { - return !( - (ParamType->isEnumeralType() && ParamType->castAsCanonical<EnumType>() + if ((ParamType->isEnumeralType() && ParamType->castAsCanonical<EnumType>() ->getOriginalDecl() ->isScoped()) || (ArgType->isEnumeralType() && - ArgType->castAsCanonical<EnumType>()->getOriginalDecl()->isScoped())); + ArgType->castAsCanonical<EnumType>()->getOriginalDecl()->isScoped())) + return false; + + return true; } // Check if the argument and the param are both function types (the parameter >From a5d4399d28040de1821fce030f9b97d7112a7997 Mon Sep 17 00:00:00 2001 From: Davide Cunial <[email protected]> Date: Wed, 29 Oct 2025 07:09:00 +0100 Subject: [PATCH 3/3] [clang-tidy][NFC] Enable 'readability-simplify-boolean-expr' check With option SimplifyDemorganRelaxed: true --- clang-tools-extra/clang-tidy/.clang-tidy | 3 ++- .../ExpandModularHeadersPPCallbacks.cpp | 8 ++++---- .../abseil/TimeSubtractionCheck.cpp | 4 ++-- .../EasilySwappableParametersCheck.cpp | 7 ++----- .../bugprone/NotNullTerminatedResultCheck.cpp | 10 ++-------- .../bugprone/ReservedIdentifierCheck.cpp | 8 ++++---- .../bugprone/SuspiciousEnumUsageCheck.cpp | 2 +- .../bugprone/VirtualNearMissCheck.cpp | 4 ++-- .../SpecialMemberFunctionsCheck.cpp | 6 +++--- .../google/AvoidNSObjectNewCheck.cpp | 5 +---- .../ImplementationInNamespaceCheck.cpp | 4 ++-- .../clang-tidy/misc/ConstCorrectnessCheck.cpp | 4 ++-- .../clang-tidy/misc/IncludeCleanerCheck.cpp | 2 +- .../misc/NewDeleteOverloadsCheck.cpp | 7 ++----- .../misc/RedundantExpressionCheck.cpp | 19 ++++++------------- .../clang-tidy/modernize/PassByValueCheck.cpp | 2 +- ...ReplaceDisallowCopyAndAssignMacroCheck.cpp | 2 +- .../modernize/UseNodiscardCheck.cpp | 2 +- .../modernize/UseTrailingReturnTypeCheck.cpp | 4 ++-- .../clang-tidy/objc/NSDateFormatterCheck.cpp | 2 +- .../performance/MoveConstArgCheck.cpp | 4 ++-- .../portability/SIMDIntrinsicsCheck.cpp | 4 ++-- .../readability/FunctionSizeCheck.cpp | 2 +- .../ImplicitBoolConversionCheck.cpp | 2 +- .../readability/NonConstParameterCheck.cpp | 4 ++-- .../SuspiciousCallArgumentCheck.cpp | 11 ++++------- .../clang-tidy/utils/FixItHintUtils.cpp | 4 ++-- 27 files changed, 56 insertions(+), 80 deletions(-) diff --git a/clang-tools-extra/clang-tidy/.clang-tidy b/clang-tools-extra/clang-tidy/.clang-tidy index d290901730405..f6a8072543347 100644 --- a/clang-tools-extra/clang-tidy/.clang-tidy +++ b/clang-tools-extra/clang-tidy/.clang-tidy @@ -29,7 +29,6 @@ Checks: > -readability-magic-numbers, -readability-named-parameter, -readability-qualified-auto, - -readability-simplify-boolean-expr, -readability-static-definition-in-anonymous-namespace, -readability-suspicious-call-argument, -readability-use-anyofallof @@ -37,3 +36,5 @@ Checks: > CheckOptions: - key: performance-move-const-arg.CheckTriviallyCopyableMove value: false + - key: readability-simplify-boolean-expr.SimplifyDeMorganRelaxed + value: true diff --git a/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp b/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp index 487e5e299d132..b5e7a13e69669 100644 --- a/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp +++ b/clang-tools-extra/clang-tidy/ExpandModularHeadersPPCallbacks.cpp @@ -23,10 +23,10 @@ class ExpandModularHeadersPPCallbacks::FileRecorder { /// Records that a given file entry is needed for replaying callbacks. void addNecessaryFile(FileEntryRef File) { // Don't record modulemap files because it breaks same file detection. - if (!(File.getName().ends_with("module.modulemap") || - File.getName().ends_with("module.private.modulemap") || - File.getName().ends_with("module.map") || - File.getName().ends_with("module_private.map"))) + if (!File.getName().ends_with("module.modulemap") && + !File.getName().ends_with("module.private.modulemap") && + !File.getName().ends_with("module.map") && + !File.getName().ends_with("module_private.map")) FilesToRecord.insert(File); } diff --git a/clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.cpp b/clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.cpp index 2def393938e67..d8b72280061c7 100644 --- a/clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.cpp +++ b/clang-tools-extra/clang-tidy/abseil/TimeSubtractionCheck.cpp @@ -80,8 +80,8 @@ static bool parensRequired(const MatchFinder::MatchResult &Result, const Expr *Node) { // TODO: Figure out any more contexts in which we can omit the surrounding // parentheses. - return !(isConstructorAssignment(Result, Node) || isArgument(Result, Node) || - isReturn(Result, Node)); + return !isConstructorAssignment(Result, Node) && !isArgument(Result, Node) && + !isReturn(Result, Node); } void TimeSubtractionCheck::emitDiagnostic(const Expr *Node, diff --git a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp index c426b32ccade3..4458ed820555c 100644 --- a/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/EasilySwappableParametersCheck.cpp @@ -1880,12 +1880,9 @@ static bool prefixSuffixCoverUnderThreshold(std::size_t Threshold, padStringAtBegin(S1PadB, BiggerLength); padStringAtBegin(S2PadB, BiggerLength); - if (isCommonSuffixWithoutSomeCharacters( + return isCommonSuffixWithoutSomeCharacters( Threshold, StringRef{S1PadB.begin(), BiggerLength}, - StringRef{S2PadB.begin(), BiggerLength})) - return true; - - return false; + StringRef{S2PadB.begin(), BiggerLength}); } } // namespace filter diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index 203170d55f694..1c54c96e83419 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -268,10 +268,7 @@ static bool isDestCapacityOverflows(const MatchFinder::MatchResult &Result) { // Assume that the destination array's capacity cannot overflow if the // expression of the memory allocation contains '+ 1'. StringRef DestCapacityExprStr = exprToStr(DestCapacityExpr, Result); - if (DestCapacityExprStr.contains("+1") || DestCapacityExprStr.contains("+ 1")) - return false; - - return true; + return !(DestCapacityExprStr.contains("+1") || DestCapacityExprStr.contains("+ 1")); } static bool @@ -533,10 +530,7 @@ AST_MATCHER_P(Expr, hasDefinition, ast_matchers::internal::Matcher<Expr>, hasLHS(declRefExpr(to(varDecl(equalsBoundNode(VarDeclName))))), hasRHS(ignoringImpCasts(InnerMatcher)))))))); - if (DREHasDefinition.matches(*SimpleNode, Finder, Builder)) - return true; - - return false; + return DREHasDefinition.matches(*SimpleNode, Finder, Builder); } } // namespace diff --git a/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp index 5812c18a2ccca..07af8eca8a440 100644 --- a/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/ReservedIdentifierCheck.cpp @@ -164,10 +164,10 @@ getFailureInfoImpl(StringRef Name, bool IsInGlobalNamespace, bool IsMacro, return Info; } - if (!(hasReservedDoubleUnderscore(Name, LangOpts) || - startsWithUnderscoreCapital(Name) || - startsWithUnderscoreInGlobalNamespace(Name, IsInGlobalNamespace, - IsMacro))) + if (!hasReservedDoubleUnderscore(Name, LangOpts) && + !startsWithUnderscoreCapital(Name) && + !startsWithUnderscoreInGlobalNamespace(Name, IsInGlobalNamespace, + IsMacro)) return FailureInfo{NonReservedTag, getNonReservedFixup(std::string(Name))}; return std::nullopt; } diff --git a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp index f2067bec001cc..fd5dca835b676 100644 --- a/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/SuspiciousEnumUsageCheck.cpp @@ -100,7 +100,7 @@ static bool isPossiblyBitMask(const EnumDecl *EnumDec) { return NonPowOfTwoCounter >= 1 && NonPowOfTwoCounter <= 2 && NonPowOfTwoCounter < EnumLen / 2 && (VR.MaxVal - VR.MinVal != EnumLen - 1) && - !(NonPowOfTwoCounter == 1 && isMaxValAllBitSetLiteral(EnumDec)); + (NonPowOfTwoCounter != 1 || !isMaxValAllBitSetLiteral(EnumDec)); } SuspiciousEnumUsageCheck::SuspiciousEnumUsageCheck(StringRef Name, diff --git a/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp index 509fce3a38471..ee286136a766b 100644 --- a/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/VirtualNearMissCheck.cpp @@ -56,8 +56,8 @@ static bool checkOverridingFunctionReturnType(const ASTContext *Context, /// Check if the return types are covariant. // Both types must be pointers or references to classes. - if (!(BaseReturnTy->isPointerType() && DerivedReturnTy->isPointerType()) && - !(BaseReturnTy->isReferenceType() && DerivedReturnTy->isReferenceType())) + if ((!BaseReturnTy->isPointerType() || !DerivedReturnTy->isPointerType()) && + (!BaseReturnTy->isReferenceType() || !DerivedReturnTy->isReferenceType())) return false; /// BTy is the class type in return type of BaseMD. For example, diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp index 0b6b8d9c97135..13cb16ba84595 100644 --- a/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp +++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/SpecialMemberFunctionsCheck.cpp @@ -228,9 +228,9 @@ void SpecialMemberFunctionsCheck::checkForMissingMembers( } if (RequireFive && - !(AllowMissingMoveFunctionsWhenCopyIsDeleted && - (IsDeleted(SpecialMemberFunctionKind::CopyConstructor) && - IsDeleted(SpecialMemberFunctionKind::CopyAssignment)))) { + (!AllowMissingMoveFunctionsWhenCopyIsDeleted || + !IsDeleted(SpecialMemberFunctionKind::CopyConstructor) || + !IsDeleted(SpecialMemberFunctionKind::CopyAssignment))) { assert(RequireThree); RequireMembers(SpecialMemberFunctionKind::MoveConstructor, SpecialMemberFunctionKind::MoveAssignment); diff --git a/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp b/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp index adcbf245ef7a3..cc1b01fa78908 100644 --- a/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp +++ b/clang-tools-extra/clang-tidy/google/AvoidNSObjectNewCheck.cpp @@ -27,10 +27,7 @@ static bool isMessageExpressionInsideMacro(const ObjCMessageExpr *Expr) { return true; SourceLocation SelectorLocation = Expr->getSelectorStartLoc(); - if (SelectorLocation.isMacroID()) - return true; - - return false; + return SelectorLocation.isMacroID(); } // Walk up the class hierarchy looking for an -init method, returning true diff --git a/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp b/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp index c2fbc4422e5d2..6325f434be4ce 100644 --- a/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp +++ b/clang-tools-extra/clang-tidy/llvmlibc/ImplementationInNamespaceCheck.cpp @@ -39,7 +39,7 @@ void ImplementationInNamespaceCheck::check( } // Enforce that the namespace is the result of macro expansion - if (Result.SourceManager->isMacroBodyExpansion(NS->getLocation()) == false) { + if (!Result.SourceManager->isMacroBodyExpansion(NS->getLocation())) { diag(NS->getLocation(), "the outermost namespace should be the '%0' macro") << RequiredNamespaceDeclMacroName; return; @@ -55,7 +55,7 @@ void ImplementationInNamespaceCheck::check( } // Lastly, make sure the namespace name actually has the __llvm_libc prefix - if (NS->getName().starts_with(RequiredNamespaceRefStart) == false) { + if (!NS->getName().starts_with(RequiredNamespaceRefStart)) { diag(NS->getLocation(), "the '%0' macro expansion should start with '%1'") << RequiredNamespaceDeclMacroName << RequiredNamespaceRefStart; return; diff --git a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp index b32507d66cbac..18b3b8bdf9474 100644 --- a/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/ConstCorrectnessCheck.cpp @@ -54,8 +54,8 @@ ConstCorrectnessCheck::ConstCorrectnessCheck(StringRef Name, AllowedTypes( utils::options::parseStringList(Options.get("AllowedTypes", ""))) { - if (AnalyzeValues == false && AnalyzeReferences == false && - AnalyzePointers == false) + if (!AnalyzeValues && !AnalyzeReferences && + !AnalyzePointers) this->configurationDiag( "The check 'misc-const-correctness' will not " "perform any analysis because 'AnalyzeValues', " diff --git a/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp b/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp index 813005b892ed7..74ef936ff8e95 100644 --- a/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/IncludeCleanerCheck.cpp @@ -70,7 +70,7 @@ IncludeCleanerCheck::IncludeCleanerCheck(StringRef Name, IgnoreHeadersRegex.emplace_back(HeaderSuffix); } - if (UnusedIncludes == false && MissingIncludes == false) + if (!UnusedIncludes && !MissingIncludes) this->configurationDiag("The check 'misc-include-cleaner' will not " "perform any analysis because 'UnusedIncludes' and " "'MissingIncludes' are both false."); diff --git a/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp b/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp index 2837f40bc49b8..89146e4cac0e8 100644 --- a/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/NewDeleteOverloadsCheck.cpp @@ -52,11 +52,8 @@ AST_MATCHER(FunctionDecl, isPlacementOverload) { const auto *FPT = Node.getType()->castAs<FunctionProtoType>(); ASTContext &Ctx = Node.getASTContext(); - if (Ctx.getLangOpts().SizedDeallocation && - Ctx.hasSameType(FPT->getParamType(1), Ctx.getSizeType())) - return false; - - return true; + return !(Ctx.getLangOpts().SizedDeallocation && + Ctx.hasSameType(FPT->getParamType(1), Ctx.getSizeType())); } } // namespace diff --git a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp index 107eda2e98f27..0a996aeffee02 100644 --- a/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/RedundantExpressionCheck.cpp @@ -196,12 +196,9 @@ static bool areExclusiveRanges(BinaryOperatorKind OpcodeLHS, // Handle the case where constants are off by one: x > 5 && x < 6. APSInt ValueLhsPlus1; - if (OpcodeLHS == BO_GT && OpcodeRHS == BO_LT && + return OpcodeLHS == BO_GT && OpcodeRHS == BO_LT && incrementWithoutOverflow(ValueLHS, ValueLhsPlus1) && - APSInt::compareValues(ValueLhsPlus1, ValueRHS) == 0) - return true; - - return false; + APSInt::compareValues(ValueLhsPlus1, ValueRHS) == 0; } // Returns whether the ranges covered by the union of both relational @@ -726,12 +723,10 @@ static bool areSidesBinaryConstExpressions(const BinaryOperator *&BinOp, return !E->isValueDependent() && E->isIntegerConstantExpr(*AstCtx); }; - if ((IsIntegerConstantExpr(LhsBinOp->getLHS()) || + return (IsIntegerConstantExpr(LhsBinOp->getLHS()) || IsIntegerConstantExpr(LhsBinOp->getRHS())) && (IsIntegerConstantExpr(RhsBinOp->getLHS()) || - IsIntegerConstantExpr(RhsBinOp->getRHS()))) - return true; - return false; + IsIntegerConstantExpr(RhsBinOp->getRHS())); } static bool areSidesBinaryConstExpressionsOrDefinesOrIntegerConstant( @@ -747,10 +742,8 @@ static bool areSidesBinaryConstExpressionsOrDefinesOrIntegerConstant( auto IsDefineExpr = [AstCtx](const Expr *E) { const SourceRange Lsr = E->getSourceRange(); - if (!Lsr.getBegin().isMacroID() || E->isValueDependent() || - !E->isIntegerConstantExpr(*AstCtx)) - return false; - return true; + return !(!Lsr.getBegin().isMacroID() || E->isValueDependent() || + !E->isIntegerConstantExpr(*AstCtx)); }; return IsDefineExpr(Lhs) || IsDefineExpr(Rhs); diff --git a/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp b/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp index a54d0721a5b7d..133ec90f356d2 100644 --- a/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/PassByValueCheck.cpp @@ -188,7 +188,7 @@ static bool hasRValueOverload(const CXXConstructorDecl *Ctor, return false; } else { // All other parameters can be similar or paired. - if (!(CandidateParamType == CtorParamType || IsLValueRValuePair)) + if (!CandidateParamType == CtorParamType && !IsLValueRValuePair) return false; } } diff --git a/clang-tools-extra/clang-tidy/modernize/ReplaceDisallowCopyAndAssignMacroCheck.cpp b/clang-tools-extra/clang-tidy/modernize/ReplaceDisallowCopyAndAssignMacroCheck.cpp index 42be7d7a7b78c..f701ac326b6d8 100644 --- a/clang-tools-extra/clang-tidy/modernize/ReplaceDisallowCopyAndAssignMacroCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/ReplaceDisallowCopyAndAssignMacroCheck.cpp @@ -61,7 +61,7 @@ const {0} &operator=(const {0} &) = delete{1})cpp", bool shouldAppendSemi(SourceRange MacroLoc) { std::optional<Token> Next = Lexer::findNextToken( MacroLoc.getEnd(), PP.getSourceManager(), PP.getLangOpts()); - return !(Next && Next->is(tok::semi)); + return !Next || !Next->is(tok::semi); } ReplaceDisallowCopyAndAssignMacroCheck &Check; diff --git a/clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp index 6de80dcb99c60..ce6bf21ab8c30 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseNodiscardCheck.cpp @@ -54,7 +54,7 @@ AST_MATCHER(CXXMethodDecl, hasTemplateReturnType) { } AST_MATCHER(CXXMethodDecl, isDefinitionOrInline) { // A function definition, with optional inline but not the declaration. - return !(Node.isThisDeclarationADefinition() && Node.isOutOfLine()); + return !Node.isThisDeclarationADefinition() || !Node.isOutOfLine(); } AST_MATCHER(QualType, isInstantiationDependentType) { return Node->isInstantiationDependentType(); diff --git a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp index 82f64096cbec1..5da009fa7ef9b 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseTrailingReturnTypeCheck.cpp @@ -410,7 +410,7 @@ static void keepSpecifiers(std::string &ReturnType, std::string &Auto, const auto *M = dyn_cast<CXXMethodDecl>(&F); if (!F.isConstexpr() && !F.isInlineSpecified() && F.getStorageClass() != SC_Extern && F.getStorageClass() != SC_Static && - !Fr && !(M && M->isVirtualAsWritten())) + !Fr && (!M || !M->isVirtualAsWritten())) return; // Tokenize return type. If it contains macros which contain a mix of @@ -459,7 +459,7 @@ UseTrailingReturnTypeCheck::UseTrailingReturnTypeCheck( TransformFunctions(Options.get("TransformFunctions", true)), TransformLambdas(Options.get("TransformLambdas", TransformLambda::All)) { - if (TransformFunctions == false && TransformLambdas == TransformLambda::None) + if (!TransformFunctions && TransformLambdas == TransformLambda::None) this->configurationDiag( "The check 'modernize-use-trailing-return-type' will not perform any " "analysis because 'TransformFunctions' and 'TransformLambdas' are " diff --git a/clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp b/clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp index 79e9d97d9594b..15c4bfe16060a 100644 --- a/clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp +++ b/clang-tools-extra/clang-tidy/objc/NSDateFormatterCheck.cpp @@ -60,7 +60,7 @@ void NSDateFormatterCheck::check(const MatchFinder::MatchResult &Result) { "did you mean to use week-year (Y) instead?"); } if (SR.contains('F')) { - if (!(SR.contains('e') || SR.contains('E'))) { + if (!SR.contains('e') && !SR.contains('E')) { diag(StrExpr->getExprLoc(), "day of week in month (F) used without day of the week (e or E); " "did you forget e (or E) in the format string?"); diff --git a/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp b/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp index f458e26d964b0..b1fc07a4f5590 100644 --- a/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/MoveConstArgCheck.cpp @@ -216,8 +216,8 @@ void MoveConstArgCheck::check(const MatchFinder::MatchResult &Result) { if (const CXXRecordDecl *RecordDecl = ArgType->getAsCXXRecordDecl(); RecordDecl && RecordDecl->hasDefinition() && - !(RecordDecl->hasMoveConstructor() && - RecordDecl->hasMoveAssignment())) { + (!RecordDecl->hasMoveConstructor() || + !RecordDecl->hasMoveAssignment())) { const bool MissingMoveAssignment = !RecordDecl->hasMoveAssignment(); const bool MissingMoveConstructor = !RecordDecl->hasMoveConstructor(); const bool MissingBoth = MissingMoveAssignment && MissingMoveConstructor; diff --git a/clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp b/clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp index f4bd4c3d5657d..6d74c9cff947b 100644 --- a/clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp +++ b/clang-tools-extra/clang-tidy/portability/SIMDIntrinsicsCheck.cpp @@ -52,8 +52,8 @@ static StringRef trySuggestPpc(StringRef Name) { } static StringRef trySuggestX86(StringRef Name) { - if (!(Name.consume_front("_mm_") || Name.consume_front("_mm256_") || - Name.consume_front("_mm512_"))) + if (!Name.consume_front("_mm_") && !Name.consume_front("_mm256_") && + !Name.consume_front("_mm512_")) return {}; // [simd.alg] diff --git a/clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.cpp b/clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.cpp index 8e3a2e306dbf7..750ae49e115fb 100644 --- a/clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.cpp @@ -24,7 +24,7 @@ class FunctionASTVisitor : public RecursiveASTVisitor<FunctionASTVisitor> { // Do not count function params. // Do not count decomposition declarations (C++17's structured bindings). if (StructNesting == 0 && - !(isa<ParmVarDecl>(VD) || isa<DecompositionDecl>(VD))) + !isa<ParmVarDecl>(VD) && !isa<DecompositionDecl>(VD)) ++Info.Variables; return true; } diff --git a/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp b/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp index 6b10e6b206a31..bd91fa6eec6c9 100644 --- a/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp @@ -209,7 +209,7 @@ getEquivalentForBoolLiteral(const CXXBoolLiteralExpr *BoolLiteral, // Prior to C++11, false literal could be implicitly converted to pointer. if (!Context.getLangOpts().CPlusPlus11 && (DestType->isPointerType() || DestType->isMemberPointerType()) && - BoolLiteral->getValue() == false) { + !BoolLiteral->getValue()) { return "0"; } diff --git a/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp b/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp index 07071a1f6d2fe..3f6ce36267761 100644 --- a/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/NonConstParameterCheck.cpp @@ -115,8 +115,8 @@ void NonConstParameterCheck::addParm(const ParmVarDecl *Parm) { // Only add nonconst integer/float pointer parameters. const QualType T = Parm->getType(); if (!T->isPointerType() || T->getPointeeType().isConstQualified() || - !(T->getPointeeType()->isIntegerType() || - T->getPointeeType()->isFloatingType())) + (!T->getPointeeType()->isIntegerType() && + !T->getPointeeType()->isFloatingType())) return; auto [It, Inserted] = Parameters.try_emplace(Parm); diff --git a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp index a80637dee18f4..66127cc7f0345 100644 --- a/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/SuspiciousCallArgumentCheck.cpp @@ -413,14 +413,11 @@ static bool areTypesCompatible(QualType ArgType, QualType ParamType, // Arithmetic types are interconvertible, except scoped enums. if (ParamType->isArithmeticType() && ArgType->isArithmeticType()) { - if ((ParamType->isEnumeralType() && ParamType->castAsCanonical<EnumType>() + return !((ParamType->isEnumeralType() && ParamType->castAsCanonical<EnumType>() ->getOriginalDecl() ->isScoped()) || (ArgType->isEnumeralType() && - ArgType->castAsCanonical<EnumType>()->getOriginalDecl()->isScoped())) - return false; - - return true; + ArgType->castAsCanonical<EnumType>()->getOriginalDecl()->isScoped())); } // Check if the argument and the param are both function types (the parameter @@ -431,7 +428,7 @@ static bool areTypesCompatible(QualType ArgType, QualType ParamType, } // Arrays or pointer arguments convert to array or pointer parameters. - if (!(isPointerOrArray(ArgType) && isPointerOrArray(ParamType))) + if (!isPointerOrArray(ArgType) || !isPointerOrArray(ParamType)) return false; // When ParamType is an array reference, ArgType has to be of the same-sized @@ -472,7 +469,7 @@ static bool areTypesCompatible(QualType ArgType, QualType ParamType, // Unless argument and param are both multilevel pointers, the types are not // convertible. - if (!(ParamType->isAnyPointerType() && ArgType->isAnyPointerType())) + if (!ParamType->isAnyPointerType() || !ArgType->isAnyPointerType()) return false; return arePointerTypesCompatible(ArgType, ParamType, IsParamContinuouslyConst, diff --git a/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp b/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp index a15589f9721c7..389048ef8cc0b 100644 --- a/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp +++ b/clang-tools-extra/clang-tidy/utils/FixItHintUtils.cpp @@ -29,8 +29,8 @@ FixItHint changeVarDeclToReference(const VarDecl &Var, ASTContext &Context) { } static bool isValueType(const Type *T) { - return !(isa<PointerType>(T) || isa<ReferenceType>(T) || isa<ArrayType>(T) || - isa<MemberPointerType>(T) || isa<ObjCObjectPointerType>(T)); + return !isa<PointerType>(T) && !isa<ReferenceType>(T) && !isa<ArrayType>(T) && + !isa<MemberPointerType>(T) && !isa<ObjCObjectPointerType>(T); } static bool isValueType(QualType QT) { return isValueType(QT.getTypePtr()); } static bool isMemberOrFunctionPointer(QualType QT) { _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
