From e4b1d2e32c34d9cc70737b363f956ab8d64a0f00 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Thu, 10 Jan 2013 03:37:30 +0000 Subject: [PATCH] [ubsan] Give entry methods default (not hidden) visibility. Fixes using ubsan on shared libraries in linux, for example. llvm-svn: 172041 --- compiler-rt/lib/ubsan/ubsan_handlers.h | 4 ++++ compiler-rt/lib/ubsan/ubsan_handlers_cxx.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/compiler-rt/lib/ubsan/ubsan_handlers.h b/compiler-rt/lib/ubsan/ubsan_handlers.h index b50f57f25671..6cc2d3623f4e 100644 --- a/compiler-rt/lib/ubsan/ubsan_handlers.h +++ b/compiler-rt/lib/ubsan/ubsan_handlers.h @@ -25,7 +25,9 @@ struct TypeMismatchData { }; #define RECOVERABLE(checkname, ...) \ + SANITIZER_INTERFACE_ATTRIBUTE \ extern "C" void __ubsan_handle_ ## checkname( __VA_ARGS__ ); \ + SANITIZER_INTERFACE_ATTRIBUTE \ extern "C" void __ubsan_handle_ ## checkname ## _abort( __VA_ARGS__ ); /// \brief Handle a runtime type check failure, caused by either a misaligned @@ -70,8 +72,10 @@ struct UnreachableData { }; /// \brief Handle a __builtin_unreachable which is reached. +SANITIZER_INTERFACE_ATTRIBUTE extern "C" void __ubsan_handle_builtin_unreachable(UnreachableData *Data); /// \brief Handle reaching the end of a value-returning function. +SANITIZER_INTERFACE_ATTRIBUTE extern "C" void __ubsan_handle_missing_return(UnreachableData *Data); struct VLABoundData { diff --git a/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h b/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h index 0fbcafb14c70..94eccb56462b 100644 --- a/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h +++ b/compiler-rt/lib/ubsan/ubsan_handlers_cxx.h @@ -28,8 +28,10 @@ struct DynamicTypeCacheMissData { /// \brief Handle a runtime type check failure, caused by an incorrect vptr. /// When this handler is called, all we know is that the type was not in the /// cache; this does not necessarily imply the existence of a bug. +SANITIZER_INTERFACE_ATTRIBUTE extern "C" void __ubsan_handle_dynamic_type_cache_miss( DynamicTypeCacheMissData *Data, ValueHandle Pointer, ValueHandle Hash); +SANITIZER_INTERFACE_ATTRIBUTE extern "C" void __ubsan_handle_dynamic_type_cache_miss_abort( DynamicTypeCacheMissData *Data, ValueHandle Pointer, ValueHandle Hash);