mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-19 15:13:49 -04:00
llvm-undname: Correctly demangle vararg parameters
FunctionSignatureNode already had an IsVariadic field, but it wasn't used anywhere yet. Set it and use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@362541 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1826,7 +1826,7 @@ FunctionSignatureNode *Demangler::demangleFunctionType(StringView &MangledName,
|
||||
if (!IsStructor)
|
||||
FTy->ReturnType = demangleType(MangledName, QualifierMangleMode::Result);
|
||||
|
||||
FTy->Params = demangleFunctionParameterList(MangledName);
|
||||
FTy->Params = demangleFunctionParameterList(MangledName, FTy->IsVariadic);
|
||||
|
||||
FTy->IsNoexcept = demangleThrowSpecification(MangledName);
|
||||
|
||||
@@ -2094,8 +2094,8 @@ ArrayTypeNode *Demangler::demangleArrayType(StringView &MangledName) {
|
||||
}
|
||||
|
||||
// Reads a function's parameters.
|
||||
NodeArrayNode *
|
||||
Demangler::demangleFunctionParameterList(StringView &MangledName) {
|
||||
NodeArrayNode *Demangler::demangleFunctionParameterList(StringView &MangledName,
|
||||
bool &IsVariadic) {
|
||||
// Empty parameter list.
|
||||
if (MangledName.consumeFront('X'))
|
||||
return nullptr;
|
||||
@@ -2152,8 +2152,7 @@ Demangler::demangleFunctionParameterList(StringView &MangledName) {
|
||||
return NA;
|
||||
|
||||
if (MangledName.consumeFront('Z')) {
|
||||
// This is a variadic parameter list. We probably need a variadic node to
|
||||
// append to the end.
|
||||
IsVariadic = true;
|
||||
return NA;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user