summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/sancov_flags.cc
diff options
context:
space:
mode:
authorMarcos Pividori <mpividori@google.com>2017-01-29 05:44:59 +0000
committerMarcos Pividori <mpividori@google.com>2017-01-29 05:44:59 +0000
commit6ef4606343358c8f0365f7741b5033c42fbabb0e (patch)
tree1766039b062548830425f30d64ee2d9cea2de241 /lib/sanitizer_common/sancov_flags.cc
parentae08a22cc215448aa3ad5a6fb099f6df77e9fa01 (diff)
General definition for weak functions
In this diff, I define a general macro for defining weak functions with a default implementation: "SANITIZER_INTERFACE_WEAK_DEF()". This way, we simplify the implementation for different platforms. For example, we cannot define weak functions on Windows, but we can use linker pragmas to create an alias to a default implementation. All of these implementation details are hidden in the new macro. Also, as I modify the name for exported weak symbols on Windows, I needed to temporarily disable "dll_host" test for asan, which checks the list of functions included in asan_win_dll_thunk. Differential Revision: https://reviews.llvm.org/D28596 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@293419 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sancov_flags.cc')
-rw-r--r--lib/sanitizer_common/sancov_flags.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/lib/sanitizer_common/sancov_flags.cc b/lib/sanitizer_common/sancov_flags.cc
index 08fd2a436..9abb5b5c5 100644
--- a/lib/sanitizer_common/sancov_flags.cc
+++ b/lib/sanitizer_common/sancov_flags.cc
@@ -15,10 +15,9 @@
#include "sanitizer_flag_parser.h"
#include "sanitizer_platform.h"
-#if !SANITIZER_LINUX
-// other platforms do not have weak symbols out of the box.
-extern "C" const char* __sancov_default_options() { return ""; }
-#endif
+SANITIZER_INTERFACE_WEAK_DEF(const char*, __sancov_default_options, void) {
+ return "";
+}
using namespace __sanitizer;