summaryrefslogtreecommitdiffstats
path: root/compiler-rt
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2012-09-07 15:34:40 +0000
committerAlexander Potapenko <glider@google.com>2012-09-07 15:34:40 +0000
commitc5adb8a70066c1a33bb1c44891aa766a4c5e4f2d (patch)
tree0a8ec360f5c1d7c4156a1a0574626afea0ee7b31 /compiler-rt
parente3d658bb6c0447042f260408de6a12408e7287e4 (diff)
downloadbcm5719-llvm-c5adb8a70066c1a33bb1c44891aa766a4c5e4f2d.tar.gz
bcm5719-llvm-c5adb8a70066c1a33bb1c44891aa766a4c5e4f2d.zip
Two minor changes:
-- exit from infinite recursion in CHECK() -- print a verbose message if mapping of the shadow memory has failed. llvm-svn: 163391
Diffstat (limited to 'compiler-rt')
-rw-r--r--compiler-rt/lib/asan/asan_rtl.cc9
1 files changed, 8 insertions, 1 deletions
diff --git a/compiler-rt/lib/asan/asan_rtl.cc b/compiler-rt/lib/asan/asan_rtl.cc
index 661e55f0493..34b84f4d1be 100644
--- a/compiler-rt/lib/asan/asan_rtl.cc
+++ b/compiler-rt/lib/asan/asan_rtl.cc
@@ -53,6 +53,9 @@ SANITIZER_INTERFACE_ATTRIBUTE
void CheckFailed(const char *file, int line, const char *cond, u64 v1, u64 v2) {
Report("AddressSanitizer CHECK failed: %s:%d \"%s\" (0x%zx, 0x%zx)\n",
file, line, cond, (uptr)v1, (uptr)v2);
+ static __thread int recursion_count = 0;
+ RAW_CHECK_MSG(recursion_count == 0, "Infinite recursion detected in CHECK\n");
+ recursion_count++;
PRINT_CURRENT_STACK();
ShowStatsAndAbort();
}
@@ -171,7 +174,11 @@ static void ReserveShadowMemoryRange(uptr beg, uptr end) {
CHECK(((end + 1) % kPageSize) == 0);
uptr size = end - beg + 1;
void *res = MmapFixedNoReserve(beg, size);
- CHECK(res == (void*)beg && "ReserveShadowMemoryRange failed");
+ if (res != (void*)beg) {
+ Report("ReserveShadowMemoryRange failed while trying to map 0x%zx bytes. "
+ "Perhaps you're using ulimit -v\n", size);
+ Abort();
+ }
}
// --------------- LowLevelAllocateCallbac ---------- {{{1
OpenPOWER on IntegriCloud