aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2019-06-04 19:10:08 +0000
committerNico Weber <nicolasweber@gmx.de>2019-06-04 19:10:08 +0000
commit1dce82636c9241b8208abe05ba02e499424338d5 (patch)
tree93eadc38febf04b3d0f32bf609b6fff79168dcf5 /llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
parent463854846853c3e4e099d31c51edec18e00730c0 (diff)
downloadllvm-1dce82636c9241b8208abe05ba02e499424338d5.zip
llvm-1dce82636c9241b8208abe05ba02e499424338d5.tar.gz
llvm-1dce82636c9241b8208abe05ba02e499424338d5.tar.bz2
llvm-undname: Correctly demangle vararg parameters
FunctionSignatureNode already had an IsVariadic field, but it wasn't used anywhere yet. Set it and use it. llvm-svn: 362541
Diffstat (limited to 'llvm/lib/Demangle/MicrosoftDemangleNodes.cpp')
-rw-r--r--llvm/lib/Demangle/MicrosoftDemangleNodes.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp b/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
index c07fde8..63ca475 100644
--- a/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
+++ b/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp
@@ -414,6 +414,12 @@ void FunctionSignatureNode::outputPost(OutputStream &OS,
Params->output(OS, Flags);
else
OS << "void";
+
+ if (IsVariadic) {
+ if (OS.back() != '(')
+ OS << ", ";
+ OS << "...";
+ }
OS << ")";
}