[compiler-rt] r268723 - Revert r268716. This has caused test failures in MSan on Linux.

Kuba Brecka via llvm-commits llvm-commits at lists.llvm.org
Fri May 6 03:23:11 PDT 2016


Author: kuba.brecka
Date: Fri May  6 05:23:10 2016
New Revision: 268723

URL: http://llvm.org/viewvc/llvm-project?rev=268723&view=rev
Log:
Revert r268716.  This has caused test failures in MSan on Linux.


Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc?rev=268723&r1=268722&r2=268723&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc Fri May  6 05:23:10 2016
@@ -63,20 +63,6 @@ const char *DemangleCXXABI(const char *n
   return name;
 }
 
-// As of now, there are no headers for the Swift runtime. Once they are
-// present, we will weakly link since we do not require Swift runtime to be
-// linked.
-typedef char *(*swift_demangle_ft)(const char *mangledName,
-                                   size_t mangledNameLength, char *outputBuffer,
-                                   size_t *outputBufferSize, uint32_t flags);
-static swift_demangle_ft swift_demangle_f;
-
-// This must not happen lazily, because dlsym uses thread-local storage, which
-// is not a good thing to do during symbolication.
-static void InitializeSwiftDemangler() {
-  swift_demangle_f = (swift_demangle_ft)dlsym(RTLD_DEFAULT, "swift_demangle");
-}
-
 // Attempts to demangle a Swift name. The demangler will return nullptr
 /// if a non-Swift name is passed in.
 const char *DemangleSwift(const char *name) {
@@ -86,6 +72,16 @@ const char *DemangleSwift(const char *na
     return nullptr;
   }
 
+  // As of now, there are no headers for the Swift runtime. Once they are
+  // present, we will weakly link since we do not require Swift runtime to be
+  // linked.
+  typedef char *(*swift_demangle_ft)(const char *mangledName,
+                                     size_t mangledNameLength,
+                                     char *outputBuffer,
+                                     size_t *outputBufferSize,
+                                     uint32_t flags);
+  swift_demangle_ft swift_demangle_f =
+    (swift_demangle_ft) dlsym(RTLD_DEFAULT, "swift_demangle");
   if (swift_demangle_f)
     return swift_demangle_f(name, internal_strlen(name), 0, 0, 0);
 
@@ -483,8 +479,6 @@ static void ChooseSymbolizerTools(Intrus
 }
 
 Symbolizer *Symbolizer::PlatformInit() {
-  InitializeSwiftDemangler();
-
   IntrusiveList<SymbolizerTool> list;
   list.clear();
   ChooseSymbolizerTools(&list, &symbolizer_allocator_);




More information about the llvm-commits mailing list