mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-05 13:26:55 +00:00
Fix layering StringRef copy using BumpPtrAllocator.
Now to copy a string into a BumpPtrAllocator and get a StringRef to the copy: StringRef myCopy = myStr.copy(myAllocator); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200885 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
33
unittests/ADT/ArrayRefTest.cpp
Normal file
33
unittests/ADT/ArrayRefTest.cpp
Normal file
@@ -0,0 +1,33 @@
|
||||
//===- llvm/unittest/ADT/ArrayRefTest.cpp - ArrayRef unit tests -----------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/Support/Allocator.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "gtest/gtest.h"
|
||||
using namespace llvm;
|
||||
|
||||
namespace llvm {
|
||||
|
||||
TEST(ArrayRefTest, AllocatorCopy) {
|
||||
BumpPtrAllocator Alloc;
|
||||
static const uint16_t Words1[] = { 1, 4, 200, 37 };
|
||||
ArrayRef<uint16_t> Array1 = makeArrayRef(Words1, 4);
|
||||
static const uint16_t Words2[] = { 11, 4003, 67, 64000, 13 };
|
||||
ArrayRef<uint16_t> Array2 = makeArrayRef(Words2, 5);
|
||||
ArrayRef<uint16_t> Array1c = Array1.copy(Alloc);
|
||||
ArrayRef<uint16_t> Array2c = Array2.copy(Alloc);;
|
||||
EXPECT_TRUE(Array1.equals(Array1c));
|
||||
EXPECT_NE(Array1.data(), Array1c.data());
|
||||
EXPECT_TRUE(Array2.equals(Array2c));
|
||||
EXPECT_NE(Array2.data(), Array2c.data());
|
||||
}
|
||||
|
||||
|
||||
} // end anonymous namespace
|
@@ -5,6 +5,7 @@ set(LLVM_LINK_COMPONENTS
|
||||
set(ADTSources
|
||||
APFloatTest.cpp
|
||||
APIntTest.cpp
|
||||
ArrayRefTest.cpp
|
||||
BitVectorTest.cpp
|
||||
DAGDeltaAlgorithmTest.cpp
|
||||
DeltaAlgorithmTest.cpp
|
||||
|
@@ -11,6 +11,7 @@
|
||||
#include "llvm/ADT/Hashing.h"
|
||||
#include "llvm/ADT/SmallVector.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "llvm/Support/Allocator.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "gtest/gtest.h"
|
||||
using namespace llvm;
|
||||
@@ -531,4 +532,18 @@ TEST(StringRefTest, joinStrings) {
|
||||
EXPECT_TRUE(v2_join3);
|
||||
}
|
||||
|
||||
|
||||
TEST(StringRefTest, AllocatorCopy) {
|
||||
BumpPtrAllocator Alloc;
|
||||
StringRef Str1 = "hello";
|
||||
StringRef Str2 = "bye";
|
||||
StringRef Str1c = Str1.copy(Alloc);
|
||||
StringRef Str2c = Str2.copy(Alloc);
|
||||
EXPECT_TRUE(Str1.equals(Str1c));
|
||||
EXPECT_NE(Str1.data(), Str1c.data());
|
||||
EXPECT_TRUE(Str2.equals(Str2c));
|
||||
EXPECT_NE(Str2.data(), Str2c.data());
|
||||
}
|
||||
|
||||
|
||||
} // end anonymous namespace
|
||||
|
Reference in New Issue
Block a user