diff --git a/compiler-rt/lib/asan/asan_internal.h b/compiler-rt/lib/asan/asan_internal.h index 3621cbbe3bd8..2bfed4937482 100644 --- a/compiler-rt/lib/asan/asan_internal.h +++ b/compiler-rt/lib/asan/asan_internal.h @@ -47,7 +47,7 @@ extern "C" void* _ReturnAddress(void); # define ALIAS(x) __attribute__((alias(x))) # define ALIGNED(x) __attribute__((aligned(x))) # define NOINLINE __attribute__((noinline)) -# define NORETURN // FIXME: should be __attribute__((noreturn)), revisit later. +# define NORETURN __attribute__((noreturn)) # define ASAN_INTERFACE_ATTRIBUTE __attribute__((visibility("default"))) #endif // defined(_WIN32) diff --git a/compiler-rt/lib/asan/asan_rtl.cc b/compiler-rt/lib/asan/asan_rtl.cc index 0c085f618d9c..20cfddbcee84 100644 --- a/compiler-rt/lib/asan/asan_rtl.cc +++ b/compiler-rt/lib/asan/asan_rtl.cc @@ -106,7 +106,10 @@ size_t ReadFileToBuffer(const char *file_name, char **buff, void AsanDie() { static int num_calls = 0; - if (AtomicInc(&num_calls) > 1) return; // Don't die twice. + if (AtomicInc(&num_calls) > 1) { + // Don't die twice - run a busy loop. + while (1) { } + } if (FLAG_sleep_before_dying) { Report("Sleeping for %d second(s)\n", FLAG_sleep_before_dying); SleepForSeconds(FLAG_sleep_before_dying);