From 7885514bf3321b6a027178ff60ac96122c8f7640 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Thu, 24 Jan 2013 14:01:59 +0000 Subject: [PATCH] [Sanitizer] use stub InternalSymbolizer on platforms where we don't have weak hooks git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@173347 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/sanitizer_common/sanitizer_symbolizer.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/sanitizer_common/sanitizer_symbolizer.cc b/lib/sanitizer_common/sanitizer_symbolizer.cc index 40d8d7db9..59f914dc5 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer.cc @@ -185,28 +185,23 @@ SANITIZER_WEAK_ATTRIBUTE SANITIZER_INTERFACE_ATTRIBUTE bool __sanitizer_symbolize_data(const char *ModuleName, u64 ModuleOffset, char *Buffer, int MaxLength); } // extern "C" -#endif // SANITIZER_SUPPORTS_WEAK_HOOKS class InternalSymbolizer { public: typedef bool (*SanitizerSymbolizeFn)(const char*, u64, char*, int); static InternalSymbolizer *get() { -#if SANITIZER_SUPPORTS_WEAK_HOOKS if (__sanitizer_symbolize_code != 0 && __sanitizer_symbolize_data != 0) { void *mem = symbolizer_allocator.Allocate(sizeof(InternalSymbolizer)); return new(mem) InternalSymbolizer(); } -#endif // SANITIZER_SUPPORTS_WEAK_HOOKS return 0; } char *SendCommand(bool is_data, const char *module_name, uptr module_offset) { -#if SANITIZER_SUPPORTS_WEAK_HOOKS SanitizerSymbolizeFn symbolize_fn = is_data ? __sanitizer_symbolize_data : __sanitizer_symbolize_code; if (symbolize_fn(module_name, module_offset, buffer_, kBufferSize)) return buffer_; -#endif // SANITIZER_SUPPORTS_WEAK_HOOKS return 0; } @@ -216,6 +211,17 @@ class InternalSymbolizer { static const int kBufferSize = 16 * 1024; char buffer_[kBufferSize]; }; +#else // SANITIZER_SUPPORTS_WEAK_HOOKS + +class InternalSymbolizer { + public: + static InternalSymbolizer *get() { return 0; } + char *SendCommand(bool is_data, const char *module_name, uptr module_offset) { + return 0; + } +}; + +#endif // SANITIZER_SUPPORTS_WEAK_HOOKS class Symbolizer { public: -- 2.11.4.GIT