summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/lib/asan/asan_internal.h22
-rw-r--r--compiler-rt/lib/asan/asan_posix.cc12
2 files changed, 13 insertions, 21 deletions
diff --git a/compiler-rt/lib/asan/asan_internal.h b/compiler-rt/lib/asan/asan_internal.h
index 224cc20360e..ab915a3b9ff 100644
--- a/compiler-rt/lib/asan/asan_internal.h
+++ b/compiler-rt/lib/asan/asan_internal.h
@@ -31,10 +31,6 @@
#endif
#endif
-#ifdef ANDROID
-#include <sys/atomics.h>
-#endif
-
#if defined(__has_feature) && __has_feature(address_sanitizer)
# error "The AddressSanitizer run-time should not be"
" instrumented by AddressSanitizer"
@@ -109,6 +105,7 @@ bool AsanInterceptsSignal(int signum);
void InstallSignalHandlers();
int GetPid();
uintptr_t GetThreadSelf();
+int AtomicInc(int *a);
// Wrapper for TLS/TSD.
void AsanTSDInit();
@@ -240,23 +237,6 @@ class LowLevelAllocator {
char *allocated_current_;
};
-// -------------------------- Atomic ---------------- {{{1
-static inline int AtomicInc(int *a) {
-#ifdef ANDROID
- return __atomic_inc(a) + 1;
-#else
- return __sync_add_and_fetch(a, 1);
-#endif
-}
-
-static inline int AtomicDec(int *a) {
-#ifdef ANDROID
- return __atomic_dec(a) - 1;
-#else
- return __sync_add_and_fetch(a, -1);
-#endif
-}
-
} // namespace __asan
#endif // ASAN_INTERNAL_H
diff --git a/compiler-rt/lib/asan/asan_posix.cc b/compiler-rt/lib/asan/asan_posix.cc
index 2bc9e485309..b7e21bd84a7 100644
--- a/compiler-rt/lib/asan/asan_posix.cc
+++ b/compiler-rt/lib/asan/asan_posix.cc
@@ -24,6 +24,10 @@
#include <sys/resource.h>
#include <unistd.h>
+#ifdef ANDROID
+#include <sys/atomics.h>
+#endif
+
namespace __asan {
static void MaybeInstallSigaction(int signum,
@@ -77,6 +81,14 @@ uintptr_t GetThreadSelf() {
return (uintptr_t)pthread_self();
}
+int AtomicInc(int *a) {
+#ifdef ANDROID
+ return __atomic_inc(a) + 1;
+#else
+ return __sync_add_and_fetch(a, 1);
+#endif
+}
+
// ---------------------- TSD ---------------- {{{1
static pthread_key_t tsd_key;
OpenPOWER on IntegriCloud