summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_linux.cc4
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
OpenPOWER on IntegriCloud