[asan] remove OS-dependent headers from asan_internal.h
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@147919 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/asan/asan_internal.h b/lib/asan/asan_internal.h
index 224cc20..ab915a3 100644
--- a/lib/asan/asan_internal.h
+++ b/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 @@
void InstallSignalHandlers();
int GetPid();
uintptr_t GetThreadSelf();
+int AtomicInc(int *a);
// Wrapper for TLS/TSD.
void AsanTSDInit();
@@ -240,23 +237,6 @@
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/lib/asan/asan_posix.cc b/lib/asan/asan_posix.cc
index 2bc9e48..b7e21bd 100644
--- a/lib/asan/asan_posix.cc
+++ b/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 @@
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;