aboutsummaryrefslogtreecommitdiff
path: root/lib/asan/tests/asan_asm_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asan/tests/asan_asm_test.cc')
-rw-r--r--lib/asan/tests/asan_asm_test.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/asan/tests/asan_asm_test.cc b/lib/asan/tests/asan_asm_test.cc
index 200de2c137a5..09af5c386079 100644
--- a/lib/asan/tests/asan_asm_test.cc
+++ b/lib/asan/tests/asan_asm_test.cc
@@ -14,7 +14,10 @@
#if defined(__linux__)
-#if defined(__x86_64__) || (defined(__i386__) && defined(__SSE2__))
+// Assembly instrumentation is broken on x86 Android (x86 + PIC + shared runtime
+// library). See https://github.com/google/sanitizers/issues/353
+#if defined(__x86_64__) || \
+ (defined(__i386__) && defined(__SSE2__) && !defined(__ANDROID__))
#include <emmintrin.h>
@@ -70,7 +73,7 @@ DECLARE_ASM_REP_MOVS(U8, "movsq");
#endif // defined(__x86_64__)
-#if defined(__i386__) && defined(__SSE2__)
+#if defined(__i386__) && defined(__SSE2__) && !defined(__ANDROID__)
namespace {
@@ -108,7 +111,8 @@ template<> Type asm_read<Type>(Type *ptr) { \
#endif // defined(__i386__) && defined(__SSE2__)
-#if defined(__x86_64__) || (defined(__i386__) && defined(__SSE2__))
+#if defined(__x86_64__) || \
+ (defined(__i386__) && defined(__SSE2__) && !defined(__ANDROID__))
namespace {