[compiler-rt] r206274 - [ASan] Replace a CHECK for mmap_limit_mb with a RAW_CHECK.

Alexander Potapenko glider at google.com
Tue Apr 15 04:36:19 PDT 2014


Author: glider
Date: Tue Apr 15 06:36:18 2014
New Revision: 206274

URL: http://llvm.org/viewvc/llvm-project?rev=206274&view=rev
Log:
[ASan] Replace a CHECK for mmap_limit_mb with a RAW_CHECK.
In the case of a CHECK failure the program tries to fork and launch llvm-symbolizer,
but hangs in mz_force_lock because one of the allocator locks is already acquired.

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc
    compiler-rt/trunk/test/asan/TestCases/mmap_limit_mb.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc?rev=206274&r1=206273&r2=206274&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_common.cc Tue Apr 15 06:36:18 2014
@@ -254,7 +254,7 @@ void IncreaseTotalMmap(uptr size) {
     // Since for now mmap_limit_mb is not a user-facing flag, just CHECK.
     uptr mmap_limit_mb = common_flags()->mmap_limit_mb;
     common_flags()->mmap_limit_mb = 0;  // Allow mmap in CHECK.
-    CHECK_LT(total_mmaped >> 20, mmap_limit_mb);
+    RAW_CHECK(total_mmaped >> 20 < mmap_limit_mb);
   }
 }
 

Modified: compiler-rt/trunk/test/asan/TestCases/mmap_limit_mb.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/asan/TestCases/mmap_limit_mb.cc?rev=206274&r1=206273&r2=206274&view=diff
==============================================================================
--- compiler-rt/trunk/test/asan/TestCases/mmap_limit_mb.cc (original)
+++ compiler-rt/trunk/test/asan/TestCases/mmap_limit_mb.cc Tue Apr 15 06:36:18 2014
@@ -27,6 +27,6 @@ int main(int argc, char **argv) {
   for (std::vector<char *>::const_iterator it = v.begin(); it != v.end(); ++it)
     delete[](*it);
   fprintf(stderr, "PASS\n");
-  // CHECK: AddressSanitizer CHECK failed{{.*}}total_mmaped{{.*}}mmap_limit_mb
+  // CHECK: total_mmaped{{.*}}mmap_limit_mb
   return 0;
 }





More information about the llvm-commits mailing list