From dd13e4e0b0830b8c0b84d543ee22ec08684d9589 Mon Sep 17 00:00:00 2001 From: Kuba Mracek Date: Mon, 24 Apr 2017 16:48:30 +0000 Subject: [PATCH] [tsan] Include __tsan_external_* API from a header file instead of declaring them manually. NFC. Differential Revision: https://reviews.llvm.org/D32384 llvm-svn: 301190 --- .../test/tsan/Darwin/debug_external.cc | 2 -- compiler-rt/test/tsan/Darwin/external-dups.cc | 8 ------- compiler-rt/test/tsan/test.h | 2 ++ compiler-rt/test/tsan/unaligned_race.cc | 23 ++++++------------- 4 files changed, 9 insertions(+), 26 deletions(-) diff --git a/compiler-rt/test/tsan/Darwin/debug_external.cc b/compiler-rt/test/tsan/Darwin/debug_external.cc index 217690fc5dd0..2418a271b23c 100644 --- a/compiler-rt/test/tsan/Darwin/debug_external.cc +++ b/compiler-rt/test/tsan/Darwin/debug_external.cc @@ -17,8 +17,6 @@ int __tsan_get_report_loc(void *report, unsigned long idx, const char **type, unsigned long trace_size); int __tsan_get_report_loc_object_type(void *report, unsigned long idx, const char **object_type); -void *__tsan_external_register_tag(const char *object_type); -void __tsan_external_assign_tag(void *addr, void *tag); } void *Thread(void *arg) { diff --git a/compiler-rt/test/tsan/Darwin/external-dups.cc b/compiler-rt/test/tsan/Darwin/external-dups.cc index b276977d481e..79432bac4a02 100644 --- a/compiler-rt/test/tsan/Darwin/external-dups.cc +++ b/compiler-rt/test/tsan/Darwin/external-dups.cc @@ -5,14 +5,6 @@ #import "../test.h" -extern "C" { -void *__tsan_external_register_tag(const char *object_type); -void *__tsan_external_assign_tag(void *addr, void *tag); -void __tsan_external_read(void *addr, void *caller_pc, void *tag); -void __tsan_external_write(void *addr, void *caller_pc, void *tag); -void __tsan_write8(void *addr); -} - void *tag; __attribute__((no_sanitize("thread"))) diff --git a/compiler-rt/test/tsan/test.h b/compiler-rt/test/tsan/test.h index 6b981c09f53d..bc4f7aad55fe 100644 --- a/compiler-rt/test/tsan/test.h +++ b/compiler-rt/test/tsan/test.h @@ -8,6 +8,8 @@ #include #include "sanitizer_common/print_address.h" +#include + #ifdef __APPLE__ #include #endif diff --git a/compiler-rt/test/tsan/unaligned_race.cc b/compiler-rt/test/tsan/unaligned_race.cc index 030642a4ddfb..5850b21542d4 100644 --- a/compiler-rt/test/tsan/unaligned_race.cc +++ b/compiler-rt/test/tsan/unaligned_race.cc @@ -6,31 +6,22 @@ volatile uint64_t objs[8*2*(2 + 4 + 8)][2]; -extern "C" { -uint16_t __sanitizer_unaligned_load16(volatile void *addr); -uint32_t __sanitizer_unaligned_load32(volatile void *addr); -uint64_t __sanitizer_unaligned_load64(volatile void *addr); -void __sanitizer_unaligned_store16(volatile void *addr, uint16_t v); -void __sanitizer_unaligned_store32(volatile void *addr, uint32_t v); -void __sanitizer_unaligned_store64(volatile void *addr, uint64_t v); -} - // All this mess is to generate unique stack for each race, // otherwise tsan will suppress similar stacks. -static NOINLINE void access(volatile char *p, int sz, int rw) { +static NOINLINE void access(volatile void *p, int sz, int rw) { if (rw) { switch (sz) { - case 0: __sanitizer_unaligned_store16(p, 0); break; - case 1: __sanitizer_unaligned_store32(p, 0); break; - case 2: __sanitizer_unaligned_store64(p, 0); break; + case 0: __sanitizer_unaligned_store16((void *)p, 0); break; + case 1: __sanitizer_unaligned_store32((void *)p, 0); break; + case 2: __sanitizer_unaligned_store64((void *)p, 0); break; default: exit(1); } } else { switch (sz) { - case 0: __sanitizer_unaligned_load16(p); break; - case 1: __sanitizer_unaligned_load32(p); break; - case 2: __sanitizer_unaligned_load64(p); break; + case 0: __sanitizer_unaligned_load16((void *)p); break; + case 1: __sanitizer_unaligned_load32((void *)p); break; + case 2: __sanitizer_unaligned_load64((void *)p); break; default: exit(1); } }