Просмотр исходного кода

Fix ArrayRef initializer_list Ctor Test

The InitializerList test had undefined behavior by creating a dangling pointer to the temporary initializer list.  This patch removes the undefined behavior in the test by creating the initializer list directly.

Reviewers: mehdi_amini, dblaikie

Differential Revision: https://reviews.llvm.org/D23890

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279783 91177308-0d34-0410-b5e6-96231b3b80d8
David Blaikie 9 лет назад
Родитель
Сommit
dffc922b38
1 измененных файлов с 2 добавлено и 1 удалено
  1. 2 1
      unittests/ADT/ArrayRefTest.cpp

+ 2 - 1
unittests/ADT/ArrayRefTest.cpp

@@ -134,7 +134,8 @@ static void ArgTest12(ArrayRef<int> A) {
 }
 }
 
 
 TEST(ArrayRefTest, InitializerList) {
 TEST(ArrayRefTest, InitializerList) {
-  ArrayRef<int> A = { 0, 1, 2, 3, 4 };
+  std::initializer_list<int> init_list = { 0, 1, 2, 3, 4 };
+  ArrayRef<int> A = init_list;
   for (int i = 0; i < 5; ++i)
   for (int i = 0; i < 5; ++i)
     EXPECT_EQ(i, A[i]);
     EXPECT_EQ(i, A[i]);