[llvm] [ADT] Fix llvm::concat_iterator for `ValueT == common_base_class *` (PR #144744)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Jun 18 09:22:08 PDT 2025
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff HEAD~1 HEAD --extensions h,cpp -- llvm/include/llvm/ADT/STLExtras.h llvm/unittests/ADT/STLExtrasTest.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h
index 951da522a..6dd9b5a24 100644
--- a/llvm/include/llvm/ADT/STLExtras.h
+++ b/llvm/include/llvm/ADT/STLExtras.h
@@ -1031,8 +1031,8 @@ class concat_iterator
using BaseT = typename concat_iterator::iterator_facade_base;
static constexpr bool ReturnsValueOrPointer =
- !(std::is_reference_v<decltype(*std::declval<IterTs>())> && ...)
- || (std::is_pointer_v<IterTs> && ...);
+ !(std::is_reference_v<decltype(*std::declval<IterTs>())> && ...) ||
+ (std::is_pointer_v<IterTs> && ...);
using reference_type =
typename std::conditional_t<ReturnsValueOrPointer, ValueT, ValueT &>;
diff --git a/llvm/unittests/ADT/STLExtrasTest.cpp b/llvm/unittests/ADT/STLExtrasTest.cpp
index 0e6b040a0..98c13a33d 100644
--- a/llvm/unittests/ADT/STLExtrasTest.cpp
+++ b/llvm/unittests/ADT/STLExtrasTest.cpp
@@ -398,8 +398,7 @@ struct some_struct {
std::string swap_val;
};
-struct derives_from_some_struct : some_struct {
-};
+struct derives_from_some_struct : some_struct {};
std::vector<int>::const_iterator begin(const some_struct &s) {
return s.data.begin();
@@ -539,13 +538,15 @@ TEST(STLExtrasTest, ConcatRangePtrToDerivedClass) {
auto S0 = std::make_unique<some_namespace::some_struct>();
auto S1 = std::make_unique<some_namespace::derives_from_some_struct>();
SmallVector<some_namespace::some_struct *> V0{S0.get()};
- SmallVector<some_namespace::derives_from_some_struct *> V1{S1.get(), S1.get()};
+ SmallVector<some_namespace::derives_from_some_struct *> V1{S1.get(),
+ S1.get()};
// Use concat over ranges of pointers to different (but related) types.
- EXPECT_THAT(concat<some_namespace::some_struct *>(V0, V1),
- ElementsAre(S0.get(),
- static_cast<some_namespace::some_struct *>(S1.get()),
- static_cast<some_namespace::some_struct *>(S1.get())));
+ EXPECT_THAT(
+ concat<some_namespace::some_struct *>(V0, V1),
+ ElementsAre(S0.get(),
+ static_cast<some_namespace::some_struct *>(S1.get()),
+ static_cast<some_namespace::some_struct *>(S1.get())));
}
TEST(STLExtrasTest, MakeFirstSecondRangeADL) {
``````````
</details>
https://github.com/llvm/llvm-project/pull/144744
More information about the llvm-commits
mailing list