llvm-undname: Fix crash on invalid name in a template parameter pointer to member arg

Found by oss-fuzz.

llvm-svn: 358234
This commit is contained in:
Nico Weber 2019-04-11 22:23:35 +00:00
parent 088fd84a72
commit 3ad5e49552
2 changed files with 7 additions and 0 deletions

View File

@ -2139,6 +2139,8 @@ Demangler::demangleTemplateParameterList(StringView &MangledName) {
SymbolNode *S = nullptr;
if (MangledName.startsWith('?')) {
S = parse(MangledName);
if (Error)
return nullptr;
memorizeIdentifier(S->Name->getUnqualifiedIdentifier());
}

View File

@ -94,3 +94,8 @@
; CHECK-EMPTY:
; CHECK-NEXT: ??8@8
; CHECK-NEXT: error: Invalid mangled name
?B@?$?K$H?
; CHECK-EMPTY:
; CHECK-NEXT: ?B@?$?K$H?
; CHECK-NEXT: error: Invalid mangled name