[llvm] 0d6c9f3 - [ArrayRefTest] Use plain array instead of std::array in unit tests.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 30 05:48:06 PDT 2025


Author: Florian Hahn
Date: 2025-04-30T13:47:44+01:00
New Revision: 0d6c9f32735a71812208f92eb640ae88a089a930

URL: https://github.com/llvm/llvm-project/commit/0d6c9f32735a71812208f92eb640ae88a089a930
DIFF: https://github.com/llvm/llvm-project/commit/0d6c9f32735a71812208f92eb640ae88a089a930.diff

LOG: [ArrayRefTest] Use plain array instead of std::array in unit tests.

std::array<> doesn't seem to decay to plain pointers on some MSVC
versions, causing windows build failures after 101fd87f98c9.

Use plain arrays to fix windows builds, including
https://lab.llvm.org/buildbot/#/builders/2/builds/22803

Added: 
    

Modified: 
    llvm/unittests/ADT/ArrayRefTest.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/unittests/ADT/ArrayRefTest.cpp b/llvm/unittests/ADT/ArrayRefTest.cpp
index a9d682c57f7a0..39a4a9b6a178c 100644
--- a/llvm/unittests/ADT/ArrayRefTest.cpp
+++ b/llvm/unittests/ADT/ArrayRefTest.cpp
@@ -291,25 +291,25 @@ static_assert(
     "should be able to construct ArrayRef from iterator_range over pointers");
 
 TEST(ArrayRefTest, ArrayRefFromIteratorRange) {
-  std::array<int, 5> A1{{42, -5, 0, 1000000, -1000000}};
-  ArrayRef<int> A2 = make_range(A1.begin(), A1.end());
+  int A1[] = {42, -5, 0, 1000000, -1000000, 0};
+  ArrayRef<int> A2 = make_range(&A1[0], &A1[5]);
 
-  EXPECT_EQ(A1.size(), A2.size());
-  for (std::size_t i = 0; i < A1.size(); ++i)
+  EXPECT_EQ(5ull, A2.size());
+  for (std::size_t i = 0; i < A2.size(); ++i)
     EXPECT_EQ(A1[i], A2[i]);
 
-  ArrayRef<const int> A3 = make_range(A1.begin(), A1.end());
-  EXPECT_EQ(A1.size(), A3.size());
-  for (std::size_t i = 0; i < A1.size(); ++i)
+  ArrayRef<const int> A3 = make_range(&A1[0], &A1[5]);
+  EXPECT_EQ(5ull, A3.size());
+  for (std::size_t i = 0; i < A3.size(); ++i)
     EXPECT_EQ(A1[i], A3[i]);
 }
 
 TEST(ArrayRefTest, ArrayRefFromIteratorConstRange) {
-  std::array<const int, 5> A1{{42, -5, 0, 1000000, -1000000}};
-  ArrayRef<const int> A2 = make_range(A1.begin(), A1.end());
+  const int A1[] = {42, -5, 0, 1000000, -1000000, 0};
+  ArrayRef<const int> A2 = make_range(&A1[0], &A1[5]);
 
-  EXPECT_EQ(A1.size(), A2.size());
-  for (std::size_t i = 0; i < A1.size(); ++i)
+  EXPECT_EQ(5ull, A2.size());
+  for (std::size_t i = 0; i < A2.size(); ++i)
     EXPECT_EQ(A1[i], A2[i]);
 }
 


        


More information about the llvm-commits mailing list