From f109267c5320210e69c1b66add801fd5f2e2a452 Mon Sep 17 00:00:00 2001 From: Timur Iskhodzhanov Date: Tue, 13 Aug 2013 12:03:51 +0000 Subject: [PATCH] [*San/RTL] Fix minor breakage Grumbling: this hasn't been caught by running 'make check-{a,l,t}san check-sanitizer' git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@188262 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/sanitizer_common/sanitizer_internal_defs.h | 3 +++ lib/tsan/rtl/tsan_interceptors.cc | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/sanitizer_common/sanitizer_internal_defs.h b/lib/sanitizer_common/sanitizer_internal_defs.h index 60e076f77..77bc967c5 100644 --- a/lib/sanitizer_common/sanitizer_internal_defs.h +++ b/lib/sanitizer_common/sanitizer_internal_defs.h @@ -180,6 +180,9 @@ typedef thread_return_t (THREAD_CALLING_CONV *thread_callback_t)(void* arg); // NOTE: Functions below must be defined in each run-time. namespace __sanitizer { void NORETURN Die(); + +// FIXME: No, this shouldn't be in the sanitizer interface. +SANITIZER_INTERFACE_ATTRIBUTE void NORETURN CheckFailed(const char *file, int line, const char *cond, u64 v1, u64 v2); } // namespace __sanitizer diff --git a/lib/tsan/rtl/tsan_interceptors.cc b/lib/tsan/rtl/tsan_interceptors.cc index 7a746f77c..ad69de0e7 100644 --- a/lib/tsan/rtl/tsan_interceptors.cc +++ b/lib/tsan/rtl/tsan_interceptors.cc @@ -362,35 +362,37 @@ static void LongJmp(ThreadState *thr, uptr *env) { CHECK(0); } +// FIXME: put everything below into a common extern "C" block? extern "C" void __tsan_setjmp(uptr sp, uptr mangled_sp) { ScopedInRtl in_rtl; SetJmp(cur_thread(), sp, mangled_sp); } // Not called. Merely to satisfy TSAN_INTERCEPT(). -SANITIZER_INTERFACE_ATTRIBUTE -extern "C" int __interceptor_setjmp(void *env); +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +int __interceptor_setjmp(void *env); extern "C" int __interceptor_setjmp(void *env) { CHECK(0); return 0; } -SANITIZER_INTERFACE_ATTRIBUTE -extern "C" int __interceptor__setjmp(void *env); +// FIXME: any reason to have a separate declaration? +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +int __interceptor__setjmp(void *env); extern "C" int __interceptor__setjmp(void *env) { CHECK(0); return 0; } -SANITIZER_INTERFACE_ATTRIBUTE -extern "C" int __interceptor_sigsetjmp(void *env); +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +int __interceptor_sigsetjmp(void *env); extern "C" int __interceptor_sigsetjmp(void *env) { CHECK(0); return 0; } -SANITIZER_INTERFACE_ATTRIBUTE -extern "C" int __interceptor___sigsetjmp(void *env); +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +int __interceptor___sigsetjmp(void *env); extern "C" int __interceptor___sigsetjmp(void *env) { CHECK(0); return 0; -- 2.11.4.GIT