summaryrefslogtreecommitdiff
path: root/lib/tsan
diff options
context:
space:
mode:
authorJulian Lettner <jlettner@apple.com>2019-08-21 23:42:06 +0000
committerJulian Lettner <jlettner@apple.com>2019-08-21 23:42:06 +0000
commit73c62339cf5a6bac19b3e897ddca363e05316d65 (patch)
treeacd621f0caffbf81a574de2f50dd685909190032 /lib/tsan
parent832231aca65152c6c56198375146ac384b946c57 (diff)
downloadcompiler-rt-73c62339cf5a6bac19b3e897ddca363e05316d65.tar.gz
[TSan] #include header instead of forward declaring interceptees
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@369601 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/tsan')
-rw-r--r--lib/tsan/rtl/tsan_interceptors_mac.cpp23
1 files changed, 5 insertions, 18 deletions
diff --git a/lib/tsan/rtl/tsan_interceptors_mac.cpp b/lib/tsan/rtl/tsan_interceptors_mac.cpp
index db7392796..8b748c110 100644
--- a/lib/tsan/rtl/tsan_interceptors_mac.cpp
+++ b/lib/tsan/rtl/tsan_interceptors_mac.cpp
@@ -23,6 +23,7 @@
#include <errno.h>
#include <libkern/OSAtomic.h>
#include <objc/objc-sync.h>
+#include <os/lock.h>
#include <sys/ucontext.h>
#if defined(__has_include) && __has_include(<xpc/xpc.h>)
@@ -246,21 +247,7 @@ TSAN_INTERCEPTOR(void, os_lock_unlock, void *lock) {
REAL(os_lock_unlock)(lock);
}
-extern "C" {
- #define _LOCK_AVAILABILITY \
- __OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0) \
- __TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0)
-
- _LOCK_AVAILABILITY void os_unfair_lock_lock(void *lock);
- // NOTE: `options` actually has type `os_unfair_lock_options_t` but this
- // should be ABI compatible.
- _LOCK_AVAILABILITY void os_unfair_lock_lock_with_options(void *lock,
- u32 options);
- _LOCK_AVAILABILITY bool os_unfair_lock_trylock(void *lock);
- _LOCK_AVAILABILITY void os_unfair_lock_unlock(void *lock);
-}
-
-TSAN_INTERCEPTOR(void, os_unfair_lock_lock, void *lock) {
+TSAN_INTERCEPTOR(void, os_unfair_lock_lock, os_unfair_lock_t lock) {
if (!cur_thread()->is_inited || cur_thread()->is_dead) {
return REAL(os_unfair_lock_lock)(lock);
}
@@ -269,7 +256,7 @@ TSAN_INTERCEPTOR(void, os_unfair_lock_lock, void *lock) {
Acquire(thr, pc, (uptr)lock);
}
-TSAN_INTERCEPTOR(void, os_unfair_lock_lock_with_options, void *lock,
+TSAN_INTERCEPTOR(void, os_unfair_lock_lock_with_options, os_unfair_lock_t lock,
u32 options) {
if (!cur_thread()->is_inited || cur_thread()->is_dead) {
return REAL(os_unfair_lock_lock_with_options)(lock, options);
@@ -279,7 +266,7 @@ TSAN_INTERCEPTOR(void, os_unfair_lock_lock_with_options, void *lock,
Acquire(thr, pc, (uptr)lock);
}
-TSAN_INTERCEPTOR(bool, os_unfair_lock_trylock, void *lock) {
+TSAN_INTERCEPTOR(bool, os_unfair_lock_trylock, os_unfair_lock_t lock) {
if (!cur_thread()->is_inited || cur_thread()->is_dead) {
return REAL(os_unfair_lock_trylock)(lock);
}
@@ -290,7 +277,7 @@ TSAN_INTERCEPTOR(bool, os_unfair_lock_trylock, void *lock) {
return result;
}
-TSAN_INTERCEPTOR(void, os_unfair_lock_unlock, void *lock) {
+TSAN_INTERCEPTOR(void, os_unfair_lock_unlock, os_unfair_lock_t lock) {
if (!cur_thread()->is_inited || cur_thread()->is_dead) {
return REAL(os_unfair_lock_unlock)(lock);
}