diff options
author | Nico Weber <nicolasweber@gmx.de> | 2019-04-10 17:31:34 +0000 |
---|---|---|
committer | Nico Weber <nicolasweber@gmx.de> | 2019-04-10 17:31:34 +0000 |
commit | 5f6eb1817af8d525ee93ac8a1f0cf9c881b3ebd3 (patch) | |
tree | 4ae8cad081f0ad5f35a02b2236bc65d1b752e446 /llvm/lib/Demangle | |
parent | 2064e45ce35a58d706b9b0601e785f94e3afe871 (diff) | |
download | bcm5719-llvm-5f6eb1817af8d525ee93ac8a1f0cf9c881b3ebd3.tar.gz bcm5719-llvm-5f6eb1817af8d525ee93ac8a1f0cf9c881b3ebd3.zip |
llvm-undname: Fix another crash-on-invalid
This fixes a regression from https://reviews.llvm.org/D60354. We used to
SymbolNode *Symbol = demangleEncodedSymbol(MangledName, QN);
if (Symbol) {
Symbol->Name = QN;
}
but changed that to
SymbolNode *Symbol = demangleEncodedSymbol(MangledName, QN);
if (Error)
return nullptr;
Symbol->Name = QN;
and one branch somewhere returned a nullptr without setting Error.
Looking at the code changed in r340083 and r340710 that branch looks
like a remnant from an earlier attempt to demangle RTTI descriptors
that has since been rewritten -- so just remove this branch. It
shouldn't change behavior for correctly mangled symbols.
llvm-svn: 358112
Diffstat (limited to 'llvm/lib/Demangle')
-rw-r--r-- | llvm/lib/Demangle/MicrosoftDemangle.cpp | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/llvm/lib/Demangle/MicrosoftDemangle.cpp b/llvm/lib/Demangle/MicrosoftDemangle.cpp index b0f4d9a8a8f..c649552051f 100644 --- a/llvm/lib/Demangle/MicrosoftDemangle.cpp +++ b/llvm/lib/Demangle/MicrosoftDemangle.cpp @@ -696,8 +696,6 @@ SymbolNode *Demangler::demangleEncodedSymbol(StringView &MangledName, StorageClass SC = demangleVariableStorageClass(MangledName); return demangleVariableEncoding(MangledName, SC); } - case '8': - return nullptr; } FunctionSymbolNode *FSN = demangleFunctionEncoding(MangledName); |