From: Kostya Serebryany Date: Thu, 6 Dec 2012 14:39:41 +0000 (+0000) Subject: [asan/msan] one more test for 32-bit allocator + minor code simplification X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6d2d30f61dda0fa9ac0b86dd56edfbe217a8ee94;p=platform%2Fupstream%2Fllvm.git [asan/msan] one more test for 32-bit allocator + minor code simplification llvm-svn: 169507 --- diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h b/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h index c5356fa..caf5380 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h @@ -149,7 +149,7 @@ class SizeClassAllocator64 { void *Allocate(uptr size, uptr alignment) { if (size < alignment) size = alignment; CHECK(CanAllocate(size, alignment)); - return AllocateBySizeClass(SizeClassMap::ClassID(size)); + return AllocateBySizeClass(ClassID(size)); } void Deallocate(void *p) { @@ -347,7 +347,7 @@ class SizeClassAllocator32 { void *Allocate(uptr size, uptr alignment) { if (size < alignment) size = alignment; CHECK(CanAllocate(size, alignment)); - return AllocateBySizeClass(SizeClassMap::ClassID(size)); + return AllocateBySizeClass(ClassID(size)); } void Deallocate(void *p) { diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cc b/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cc index d3180ec..e0b7207 100644 --- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cc +++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cc @@ -326,9 +326,10 @@ void TestSizeClassAllocatorLocalCache() { static THREADLOCAL AllocatorCache static_allocator_cache; static_allocator_cache.Init(); AllocatorCache cache; - typename AllocatorCache::Allocator a; + typedef typename AllocatorCache::Allocator Allocator; + Allocator *a = new Allocator(); - a.Init(); + a->Init(); cache.Init(); const uptr kNumAllocs = 10000; @@ -337,19 +338,20 @@ void TestSizeClassAllocatorLocalCache() { for (int i = 0; i < kNumIter; i++) { void *allocated[kNumAllocs]; for (uptr i = 0; i < kNumAllocs; i++) { - allocated[i] = cache.Allocate(&a, 0); + allocated[i] = cache.Allocate(a, 0); } for (uptr i = 0; i < kNumAllocs; i++) { - cache.Deallocate(&a, 0, allocated[i]); + cache.Deallocate(a, 0, allocated[i]); } - cache.Drain(&a); - uptr total_allocated = a.TotalMemoryUsed(); + cache.Drain(a); + uptr total_allocated = a->TotalMemoryUsed(); if (saved_total) CHECK_EQ(saved_total, total_allocated); saved_total = total_allocated; } - a.TestOnlyUnmap(); + a->TestOnlyUnmap(); + delete a; } #if SANITIZER_WORDSIZE == 64 @@ -357,8 +359,18 @@ TEST(SanitizerCommon, SizeClassAllocator64LocalCache) { TestSizeClassAllocatorLocalCache< SizeClassAllocatorLocalCache >(); } + +TEST(SanitizerCommon, SizeClassAllocator64CompactLocalCache) { + TestSizeClassAllocatorLocalCache< + SizeClassAllocatorLocalCache >(); +} #endif +TEST(SanitizerCommon, SizeClassAllocator32CompactLocalCache) { + TestSizeClassAllocatorLocalCache< + SizeClassAllocatorLocalCache >(); +} + TEST(Allocator, Basic) { char *p = (char*)InternalAlloc(10); EXPECT_NE(p, (char*)0);