Skip to content

Commit

Permalink
[unittest] Explicitly specify alignment when using BumpPtrAllocator.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
jrose-apple committed Mar 11, 2017
1 parent c32a573 commit 621f2c2
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
6 changes: 3 additions & 3 deletions unittests/Support/AllocatorTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 2 additions & 1 deletion unittests/Support/BinaryStreamTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 621f2c2

Please sign in to comment.