[clang-tools-extra] [clang-tidy][NFC] change patterns 'anyOf(..., anything())' to 'optionally(...)' (PR #143558)
llvm-ci wrote: LLVM Buildbot has detected a new failure on builder `clang-aarch64-sve2-vla-2stage` running on `linaro-g4-01` while building `clang-tools-extra` at step 12 "ninja check 2". Full details are available at: https://lab.llvm.org/buildbot/#/builders/199/builds/4068 Here is the relevant piece of the build log for the reference ``` Step 12 (ninja check 2) failure: stage 2 checked (failure) ... [172/174] Building CXX object flang-rt/unittests/Runtime/CMakeFiles/RuntimeTests.dir/Reduction.cpp.o [173/174] Building CXX object flang-rt/unittests/Runtime/CMakeFiles/RuntimeTests.dir/Transformational.cpp.o [174/174] Linking CXX executable flang-rt/unittests/Runtime/RuntimeTests [691/1391] Linking CXX executable tools/clang/unittests/Format/FormatTests clang++: warning: argument unused during compilation: '-mllvm -scalable-vectorization=preferred' [-Wunused-command-line-argument] clang++: warning: argument unused during compilation: '-mllvm -treat-scalable-fixed-error-as-warning=false' [-Wunused-command-line-argument] [754/1391] Linking CXX executable unittests/ADT/ADTTests clang++: warning: argument unused during compilation: '-mllvm -scalable-vectorization=preferred' [-Wunused-command-line-argument] clang++: warning: argument unused during compilation: '-mllvm -treat-scalable-fixed-error-as-warning=false' [-Wunused-command-line-argument] [779/1391] Linking CXX executable tools/flang/unittests/Frontend/FlangFrontendTests FAILED: tools/flang/unittests/Frontend/FlangFrontendTests : && /home/tcwg-buildbot/worker/clang-aarch64-sve2-vla-2stage/stage1.install/bin/clang++ -mcpu=neoverse-v2 -mllvm -scalable-vectorization=preferred -mllvm -treat-scalable-fixed-error-as-warning=false -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-deprecated-copy -Wno-string-conversion -Wno-ctad-maybe-unsupported -Wno-unused-command-line-argument -Wstring-conversion -Wcovered-switch-default -Wno-nested-anon-types -Xclang -fno-pch-timestamp -O3 -DNDEBUG -fuse-ld=lld -Wl,--color-diagnostics -Wl,--gc-sections tools/flang/unittests/Frontend/CMakeFiles/FlangFrontendTests.dir/CodeGenActionTest.cpp.o tools/flang/unittests/Frontend/CMakeFiles/FlangFrontendTests.dir/CompilerInstanceTest.cpp.o tools/flang/unittests/Frontend/CMakeFiles/FlangFrontendTests.dir/FrontendActionTest.cpp.o -o tools/flang/unittests/Frontend/FlangFrontendTests lib/libLLVMAArch64CodeGen.a lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Disassembler.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMAMDGPUCodeGen.a lib/libLLVMAMDGPUAsmParser.a lib/libLLVMAMDGPUDesc.a lib/libLLVMAMDGPUDisassembler.a lib/libLLVMAMDGPUInfo.a lib/libLLVMAMDGPUUtils.a lib/libLLVMARMCodeGen.a lib/libLLVMARMAsmParser.a lib/libLLVMARMDesc.a lib/libLLVMARMDisassembler.a lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMAVRCodeGen.a lib/libLLVMAVRAsmParser.a lib/libLLVMAVRDesc.a lib/libLLVMAVRDisassembler.a lib/libLLVMAVRInfo.a lib/libLLVMBPFCodeGen.a lib/libLLVMBPFAsmParser.a lib/libLLVMBPFDesc.a lib/libLLVMBPFDisassembler.a lib/libLLVMBPFInfo.a lib/libLLVMHexagonCodeGen.a lib/libLLVMHexagonAsmParser.a lib/libLLVMHexagonDesc.a lib/libLLVMHexagonDisassembler.a lib/libLLVMHexagonInfo.a lib/libLLVMLanaiCodeGen.a lib/libLLVMLanaiAsmParser.a lib/libLLVMLanaiDesc.a lib/libLLVMLanaiDisassembler.a lib/libLLVMLanaiInfo.a lib/libLLVMLoongArchCodeGen.a lib/libLLVMLoongArchAsmParser.a lib/libLLVMLoongArchDesc.a lib/libLLVMLoongArchDisassembler.a lib/libLLVMLoongArchInfo.a lib/libLLVMMipsCodeGen.a lib/libLLVMMipsAsmParser.a lib/libLLVMMipsDesc.a lib/libLLVMMipsDisassembler.a lib/libLLVMMipsInfo.a lib/libLLVMMSP430CodeGen.a lib/libLLVMMSP430AsmParser.a lib/libLLVMMSP430Desc.a lib/libLLVMMSP430Disassembler.a lib/libLLVMMSP430Info.a lib/libLLVMNVPTXCodeGen.a lib/libLLVMNVPTXDesc.a lib/libLLVMNVPTXInfo.a lib/libLLVMPowerPCCodeGen.a lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCDesc.a lib/libLLVMPowerPCDisassembler.a lib/libLLVMPowerPCInfo.a lib/libLLVMRISCVCodeGen.a lib/libLLVMRISCVAsmParser.a lib/libLLVMRISCVDesc.a lib/libLLVMRISCVDisassembler.a lib/libLLVMRISCVInfo.a lib/libLLVMSparcCodeGen.a lib/libLLVMSparcAsmParser.a lib/libLLVMSparcDesc.a lib/libLLVMSparcDisassembler.a lib/libLLVMSparcInfo.a lib/libLLVMSPIRVCodeGen.a lib/libLLVMSPIRVDesc.a lib/libLLVMSPIRVInfo.a lib/libLLVMSystemZCodeGen.a lib/libLLVMSystemZAsmParser.a lib/libLLV
[clang-tools-extra] [clang-tidy][NFC] change patterns 'anyOf(..., anything())' to 'optionally(...)' (PR #143558)
https://github.com/vbvictor closed https://github.com/llvm/llvm-project/pull/143558 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang-tools-extra] [clang-tidy][NFC] change patterns 'anyOf(..., anything())' to 'optionally(...)' (PR #143558)
llvmbot wrote: @llvm/pr-subscribers-clang-tools-extra Author: Baranov Victor (vbvictor) Changes Writing `optionally()` instead of `anyOf(..., anything())` lowers code size and gives the author's intention better. --- Full diff: https://github.com/llvm/llvm-project/pull/143558.diff 5 Files Affected: - (modified) clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp (+10-11) - (modified) clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp (+5-7) - (modified) clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp (+5-8) - (modified) clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp (+6-7) - (modified) clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp (+2-2) ``diff diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index bedecb60569e8..203170d55f694 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -702,17 +702,16 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { return hasArgument( CC.LengthPos, allOf( -anyOf( -ignoringImpCasts(integerLiteral().bind(WrongLengthExprName)), -allOf(unless(hasDefinition(SizeOfCharExpr)), - allOf(CC.WithIncrease -? ignoringImpCasts(hasDefinition(HasIncOp)) -: ignoringImpCasts(allOf( - unless(hasDefinition(HasIncOp)), - anyOf(hasDefinition(binaryOperator().bind( -UnknownLengthName)), -hasDefinition(anything(), -AnyOfWrongLengthInit))), +anyOf(ignoringImpCasts(integerLiteral().bind(WrongLengthExprName)), + allOf(unless(hasDefinition(SizeOfCharExpr)), +allOf(CC.WithIncrease + ? ignoringImpCasts(hasDefinition(HasIncOp)) + : ignoringImpCasts( +allOf(unless(hasDefinition(HasIncOp)), + hasDefinition(optionally( + binaryOperator().bind( + UnknownLengthName), + AnyOfWrongLengthInit))), expr().bind(LengthExprName))); }; diff --git a/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp b/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp index 2b2acfdf5b08e..ed39568ea554a 100644 --- a/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp +++ b/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp @@ -24,14 +24,12 @@ void ExceptionBaseclassCheck::registerMatchers(MatchFinder *Finder) { isSameOrDerivedFrom(hasName("::std::exception")), // This condition is always true, but will bind to the // template value if the thrown type is templated. - anyOf(has(expr( -hasType(substTemplateTypeParmType().bind("templ_type", -anything()), + optionally(has( + expr(hasType(substTemplateTypeParmType().bind("templ_type"), // Bind to the declaration of the type of the value that - // is thrown. 'anything()' is necessary to always succeed - // in the 'eachOf' because builtin types are not - // 'namedDecl'. - eachOf(has(expr(hasType(namedDecl().bind("decl", anything())) + // is thrown. 'optionally' is necessary because builtin types + // are not 'namedDecl'. + optionally(has(expr(hasType(namedDecl().bind("decl")) .bind("bad_throw"), this); } diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp index faff1c17fc61e..37fbd8c0d725f 100644 --- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp @@ -38,8 +38,7 @@ void StaticAssertCheck::registerMatchers(MatchFinder *Finder) { binaryOperator( hasAnyOperatorName("&&", "=="), hasEitherOperand(ignoringImpCasts(stringLiteral().bind("assertMSG"))), - anyOf(binaryOperator(hasEitherOperand(IsAlwaysFalseWithCast)), -anything())) + optionally(binaryOperator(hasEitherOperand(IsAlwaysFalseWithCast .bind("assertExprRoot"), IsAlwaysFalse); auto NonConstexprFunctionCall = @@ -52,12 +51,10 @@ void StaticAssertCheck::registerMatchers(MatchFinder *Finder) {
[clang-tools-extra] [clang-tidy][NFC] change patterns 'anyOf(..., anything())' to 'optionally(...)' (PR #143558)
llvmbot wrote: @llvm/pr-subscribers-clang-tidy Author: Baranov Victor (vbvictor) Changes Writing `optionally()` instead of `anyOf(..., anything())` lowers code size and gives the author's intention better. --- Full diff: https://github.com/llvm/llvm-project/pull/143558.diff 5 Files Affected: - (modified) clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp (+10-11) - (modified) clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp (+5-7) - (modified) clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp (+5-8) - (modified) clang-tools-extra/clang-tidy/modernize/UseBoolLiteralsCheck.cpp (+6-7) - (modified) clang-tools-extra/clang-tidy/readability/ImplicitBoolConversionCheck.cpp (+2-2) ``diff diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index bedecb60569e8..203170d55f694 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -702,17 +702,16 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { return hasArgument( CC.LengthPos, allOf( -anyOf( -ignoringImpCasts(integerLiteral().bind(WrongLengthExprName)), -allOf(unless(hasDefinition(SizeOfCharExpr)), - allOf(CC.WithIncrease -? ignoringImpCasts(hasDefinition(HasIncOp)) -: ignoringImpCasts(allOf( - unless(hasDefinition(HasIncOp)), - anyOf(hasDefinition(binaryOperator().bind( -UnknownLengthName)), -hasDefinition(anything(), -AnyOfWrongLengthInit))), +anyOf(ignoringImpCasts(integerLiteral().bind(WrongLengthExprName)), + allOf(unless(hasDefinition(SizeOfCharExpr)), +allOf(CC.WithIncrease + ? ignoringImpCasts(hasDefinition(HasIncOp)) + : ignoringImpCasts( +allOf(unless(hasDefinition(HasIncOp)), + hasDefinition(optionally( + binaryOperator().bind( + UnknownLengthName), + AnyOfWrongLengthInit))), expr().bind(LengthExprName))); }; diff --git a/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp b/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp index 2b2acfdf5b08e..ed39568ea554a 100644 --- a/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp +++ b/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp @@ -24,14 +24,12 @@ void ExceptionBaseclassCheck::registerMatchers(MatchFinder *Finder) { isSameOrDerivedFrom(hasName("::std::exception")), // This condition is always true, but will bind to the // template value if the thrown type is templated. - anyOf(has(expr( -hasType(substTemplateTypeParmType().bind("templ_type", -anything()), + optionally(has( + expr(hasType(substTemplateTypeParmType().bind("templ_type"), // Bind to the declaration of the type of the value that - // is thrown. 'anything()' is necessary to always succeed - // in the 'eachOf' because builtin types are not - // 'namedDecl'. - eachOf(has(expr(hasType(namedDecl().bind("decl", anything())) + // is thrown. 'optionally' is necessary because builtin types + // are not 'namedDecl'. + optionally(has(expr(hasType(namedDecl().bind("decl")) .bind("bad_throw"), this); } diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp index faff1c17fc61e..37fbd8c0d725f 100644 --- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp @@ -38,8 +38,7 @@ void StaticAssertCheck::registerMatchers(MatchFinder *Finder) { binaryOperator( hasAnyOperatorName("&&", "=="), hasEitherOperand(ignoringImpCasts(stringLiteral().bind("assertMSG"))), - anyOf(binaryOperator(hasEitherOperand(IsAlwaysFalseWithCast)), -anything())) + optionally(binaryOperator(hasEitherOperand(IsAlwaysFalseWithCast .bind("assertExprRoot"), IsAlwaysFalse); auto NonConstexprFunctionCall = @@ -52,12 +51,10 @@ void StaticAssertCheck::registerMatchers(MatchFinder *Finder) { auto
[clang-tools-extra] [clang-tidy][NFC] change patterns 'anyOf(..., anything())' to 'optionally(...)' (PR #143558)
https://github.com/vbvictor created https://github.com/llvm/llvm-project/pull/143558 Writing `optionally()` instead of `anyOf(..., anything())` lowers code size and gives the author's intention better. >From 177faff965a73efdd22d460c38ff61004c065392 Mon Sep 17 00:00:00 2001 From: Victor Baranov Date: Tue, 10 Jun 2025 18:46:45 +0300 Subject: [PATCH] [clang-tidy][NFC] change patterns 'anyOf(..., anything())' to 'optionally(...)' --- .../bugprone/NotNullTerminatedResultCheck.cpp | 21 +-- .../hicpp/ExceptionBaseclassCheck.cpp | 12 +-- .../clang-tidy/misc/StaticAssertCheck.cpp | 13 +--- .../modernize/UseBoolLiteralsCheck.cpp| 13 ++-- .../ImplicitBoolConversionCheck.cpp | 4 ++-- 5 files changed, 28 insertions(+), 35 deletions(-) diff --git a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp index bedecb60569e8..203170d55f694 100644 --- a/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp +++ b/clang-tools-extra/clang-tidy/bugprone/NotNullTerminatedResultCheck.cpp @@ -702,17 +702,16 @@ void NotNullTerminatedResultCheck::registerMatchers(MatchFinder *Finder) { return hasArgument( CC.LengthPos, allOf( -anyOf( -ignoringImpCasts(integerLiteral().bind(WrongLengthExprName)), -allOf(unless(hasDefinition(SizeOfCharExpr)), - allOf(CC.WithIncrease -? ignoringImpCasts(hasDefinition(HasIncOp)) -: ignoringImpCasts(allOf( - unless(hasDefinition(HasIncOp)), - anyOf(hasDefinition(binaryOperator().bind( -UnknownLengthName)), -hasDefinition(anything(), -AnyOfWrongLengthInit))), +anyOf(ignoringImpCasts(integerLiteral().bind(WrongLengthExprName)), + allOf(unless(hasDefinition(SizeOfCharExpr)), +allOf(CC.WithIncrease + ? ignoringImpCasts(hasDefinition(HasIncOp)) + : ignoringImpCasts( +allOf(unless(hasDefinition(HasIncOp)), + hasDefinition(optionally( + binaryOperator().bind( + UnknownLengthName), + AnyOfWrongLengthInit))), expr().bind(LengthExprName))); }; diff --git a/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp b/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp index 2b2acfdf5b08e..ed39568ea554a 100644 --- a/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp +++ b/clang-tools-extra/clang-tidy/hicpp/ExceptionBaseclassCheck.cpp @@ -24,14 +24,12 @@ void ExceptionBaseclassCheck::registerMatchers(MatchFinder *Finder) { isSameOrDerivedFrom(hasName("::std::exception")), // This condition is always true, but will bind to the // template value if the thrown type is templated. - anyOf(has(expr( -hasType(substTemplateTypeParmType().bind("templ_type", -anything()), + optionally(has( + expr(hasType(substTemplateTypeParmType().bind("templ_type"), // Bind to the declaration of the type of the value that - // is thrown. 'anything()' is necessary to always succeed - // in the 'eachOf' because builtin types are not - // 'namedDecl'. - eachOf(has(expr(hasType(namedDecl().bind("decl", anything())) + // is thrown. 'optionally' is necessary because builtin types + // are not 'namedDecl'. + optionally(has(expr(hasType(namedDecl().bind("decl")) .bind("bad_throw"), this); } diff --git a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp index faff1c17fc61e..37fbd8c0d725f 100644 --- a/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/StaticAssertCheck.cpp @@ -38,8 +38,7 @@ void StaticAssertCheck::registerMatchers(MatchFinder *Finder) { binaryOperator( hasAnyOperatorName("&&", "=="), hasEitherOperand(ignoringImpCasts(stringLiteral().bind("assertMSG"))), - anyOf(binaryOperator(hasEitherOperand(IsAlwaysFalseWithCast)), -anything())) + optionally(binaryOperator(hasEitherOperand(IsAlwaysFalseWithCast .bind("assertExprRoot"), IsAlwaysFalse); auto NonConstexprFunctionCall = @@ -52,12 +51,10 @@ void StaticAsser