[llvm] r292573 - Revert "Demangle: only demangle mangled symbols"

Saleem Abdulrasool via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 19 19:54:05 PST 2017


Author: compnerd
Date: Thu Jan 19 21:54:04 2017
New Revision: 292573

URL: http://llvm.org/viewvc/llvm-project?rev=292573&view=rev
Log:
Revert "Demangle: only demangle mangled symbols"

This reverts SVN r286795.  This was incorrect the demangler is expected
to be able to demangle types as well as functions.  This makes the
behaviour of itaniumDemangle similar to __cxa_demangle once more.

Modified:
    llvm/trunk/lib/Demangle/ItaniumDemangle.cpp

Modified: llvm/trunk/lib/Demangle/ItaniumDemangle.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Demangle/ItaniumDemangle.cpp?rev=292573&r1=292572&r2=292573&view=diff
==============================================================================
--- llvm/trunk/lib/Demangle/ItaniumDemangle.cpp (original)
+++ llvm/trunk/lib/Demangle/ItaniumDemangle.cpp Thu Jan 19 21:54:04 2017
@@ -4225,20 +4225,11 @@ char *llvm::itaniumDemangle(const char *
       *status = invalid_args;
     return nullptr;
   }
-
-  size_t len = std::strlen(mangled_name);
-  if (len < 2 || strncmp(mangled_name, "_Z", 2)) {
-    if (len < 4 || strncmp(mangled_name, "___Z", 4)) {
-      if (status)
-        *status = invalid_mangled_name;
-      return nullptr;
-    }
-  }
-
   size_t internal_size = buf != nullptr ? *n : 0;
   Db db;
   db.template_param.emplace_back();
   int internal_status = success;
+  size_t len = std::strlen(mangled_name);
   demangle(mangled_name, mangled_name + len, db, internal_status);
   if (internal_status == success && db.fix_forward_references &&
       !db.template_param.empty() && !db.template_param.front().empty()) {




More information about the llvm-commits mailing list