From f456018a324dc48668a57060f5ac9c838dfd9f32 Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Mon, 28 Oct 2013 16:31:39 +0000 Subject: [Sanitizer] Revert r193501 and properly fix r193448 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@193522 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/asan/asan_report.cc | 4 +--- lib/sanitizer_common/sanitizer_symbolizer.cc | 2 +- lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc | 3 ++- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/asan/asan_report.cc b/lib/asan/asan_report.cc index ca060089..5406ac02 100644 --- a/lib/asan/asan_report.cc +++ b/lib/asan/asan_report.cc @@ -551,9 +551,7 @@ class ScopedInErrorReport { static void ReportSummary(const char *error_type, StackTrace *stack) { AddressInfo ai; - // FIXME: The symbolizer interface should be changed in order to support - // Windows where we don't have a symbolizer. - if (!SANITIZER_WINDOWS && Symbolizer::Get()->IsAvailable()) { + if (Symbolizer::Get()->IsAvailable()) { // Currently, we include the first stack frame into the report summary. // Maybe sometimes we need to choose another frame (e.g. skip memcpy/etc). uptr pc = StackTrace::GetPreviousInstructionPc(stack->trace[0]); diff --git a/lib/sanitizer_common/sanitizer_symbolizer.cc b/lib/sanitizer_common/sanitizer_symbolizer.cc index 95ebfebe..ea74420f 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer.cc @@ -35,7 +35,7 @@ Symbolizer *Symbolizer::Get() { Symbolizer *Symbolizer::Disable() { CHECK_EQ(0, atomic_load(&symbolizer_, memory_order_acquire)); Symbolizer *dummy_sym = new(symbolizer_allocator_) Symbolizer; - atomic_store(&symbolizer_, reinterpret_cast(&dummy_sym), + atomic_store(&symbolizer_, reinterpret_cast(dummy_sym), memory_order_release); return dummy_sym; } diff --git a/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc b/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc index ada7be15..a7a47d4a 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc @@ -20,7 +20,8 @@ namespace __sanitizer { Symbolizer *Symbolizer::CreateAndStore(const char *path_to_external) { Symbolizer *platform_symbolizer = PlatformInit(path_to_external); - if (!platform_symbolizer) return Disable(); + if (!platform_symbolizer) + return Disable(); atomic_store(&symbolizer_, reinterpret_cast(platform_symbolizer), memory_order_release); return platform_symbolizer; -- cgit v1.2.3