diff options
Diffstat (limited to 'llvm/lib/Demangle')
| -rw-r--r-- | llvm/lib/Demangle/ItaniumDemangle.cpp | 11 | 
1 files changed, 1 insertions, 10 deletions
| diff --git a/llvm/lib/Demangle/ItaniumDemangle.cpp b/llvm/lib/Demangle/ItaniumDemangle.cpp index 097b6ca2e08..b078ffee4a5 100644 --- a/llvm/lib/Demangle/ItaniumDemangle.cpp +++ b/llvm/lib/Demangle/ItaniumDemangle.cpp @@ -4225,20 +4225,11 @@ char *llvm::itaniumDemangle(const char *mangled_name, char *buf, size_t *n,        *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()) { | 

