[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