[unittest] Explicitly specify alignment when using BumpPtrAllocator.

r297310 began inserting red zones around allocations under ASan, which
perturbs the alignment of subsequent allocations. Deliberately specify
this in two places where it matters.

Fixes failures when these tests are run under ASan and UBSan together.
Reviewed by Duncan Exon Smith.

rdar://problem/30980047

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@297540 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jordan Rose 2017-03-11 01:24:56 +00:00
parent c32a57361b
commit 621f2c2cdd
2 changed files with 5 additions and 4 deletions

View File

@ -17,9 +17,9 @@ namespace {
TEST(AllocatorTest, Basics) {
BumpPtrAllocator Alloc;
int *a = (int*)Alloc.Allocate(sizeof(int), 1);
int *b = (int*)Alloc.Allocate(sizeof(int) * 10, 1);
int *c = (int*)Alloc.Allocate(sizeof(int), 1);
int *a = (int*)Alloc.Allocate(sizeof(int), alignof(int));
int *b = (int*)Alloc.Allocate(sizeof(int) * 10, alignof(int));
int *c = (int*)Alloc.Allocate(sizeof(int), alignof(int));
*a = 1;
b[0] = 2;
b[9] = 2;

View File

@ -686,7 +686,8 @@ TEST_F(BinaryStreamTest, BinaryItemStream) {
std::vector<Foo> Foos = {{1, 1.0}, {2, 2.0}, {3, 3.0}};
BumpPtrAllocator Allocator;
for (const auto &F : Foos) {
uint8_t *Ptr = Allocator.Allocate<uint8_t>(sizeof(Foo));
uint8_t *Ptr = static_cast<uint8_t *>(Allocator.Allocate(sizeof(Foo),
alignof(Foo)));
MutableArrayRef<uint8_t> Buffer(Ptr, sizeof(Foo));
MutableBinaryByteStream Stream(Buffer, llvm::support::big);
BinaryStreamWriter Writer(Stream);