[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 [email protected] 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
