diff options
-rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_linux.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc index 782e520e69b..f4c3c3cd62f 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc @@ -1158,7 +1158,11 @@ void internal_join_thread(void *th) {} bool GetSigContextWriteFlag(void *context) { #if defined(__x86_64__) || defined(__i386__) ucontext_t *ucontext = (ucontext_t*)context; +#if SANITIZER_FREEBSD + return ucontext->uc_mcontext.mc_err & 2; +#else return ucontext->uc_mcontext.gregs[REG_ERR] & 2; +#endif #else return false; // FIXME: Implement. #endif |