From c4326a1ae45658725e43909b74dc25104994cbb5 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Tue, 17 Feb 2015 17:44:07 +0000 Subject: [PATCH] Correcting the ArrayRef test to not cause use-after-free bugs with initializer lists. Should also silence a -Wsign-compare warning accidentally introduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229515 91177308-0d34-0410-b5e6-96231b3b80d8 --- unittests/ADT/ArrayRefTest.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/unittests/ADT/ArrayRefTest.cpp b/unittests/ADT/ArrayRefTest.cpp index 5912c05b13d..70f8208620e 100644 --- a/unittests/ADT/ArrayRefTest.cpp +++ b/unittests/ADT/ArrayRefTest.cpp @@ -11,6 +11,7 @@ #include "llvm/Support/Allocator.h" #include "llvm/Support/raw_ostream.h" #include "gtest/gtest.h" +#include using namespace llvm; // Check that the ArrayRef-of-pointer converting constructor only allows adding @@ -90,9 +91,9 @@ TEST(ArrayRefTest, ConstConvert) { a = ArrayRef(A); } -static ArrayRef ReturnTest12() { return {1, 2}; } +static std::vector ReturnTest12() { return {1, 2}; } static void ArgTest12(ArrayRef A) { - EXPECT_EQ(2, A.size()); + EXPECT_EQ(2U, A.size()); EXPECT_EQ(1, A[0]); EXPECT_EQ(2, A[1]); } @@ -102,7 +103,8 @@ TEST(ArrayRefTest, InitializerList) { for (int i = 0; i < 5; ++i) EXPECT_EQ(i, A[i]); - A = ReturnTest12(); + std::vector B = ReturnTest12(); + A = B; EXPECT_EQ(1, A[0]); EXPECT_EQ(2, A[1]); -- 2.34.1