From acf1f7da9628b30a5577bf954f26e328a89c2ac7 Mon Sep 17 00:00:00 2001 From: Iain Buclaw Date: Wed, 27 Jan 2016 01:07:17 +0000 Subject: [PATCH] d-demangle.c (dlang_function_args): Append ',' for variadic functions only if parameters were seen before the... libiberty/ChangeLog: 2016-01-26 Iain Buclaw * d-demangle.c (dlang_function_args): Append ',' for variadic functions only if parameters were seen before the elipsis symbol. * testsuite/d-demangle-expected: Add coverage test for parameter-less variadic functions. From-SVN: r232863 --- libiberty/ChangeLog | 7 +++++++ libiberty/d-demangle.c | 4 +++- libiberty/testsuite/d-demangle-expected | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index aa1af40c50c..88422c54815 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,10 @@ +2016-01-27 Iain Buclaw + + * d-demangle.c (dlang_function_args): Append ',' for variadic functions + only if parameters were seen before the elipsis symbol. + * testsuite/d-demangle-expected: Add coverage test for parameter-less + variadic functions. + 2016-01-27 Iain Buclaw * d-demangle.c (dlang_type): Handle function types only in the context diff --git a/libiberty/d-demangle.c b/libiberty/d-demangle.c index 9c4d4597e8d..9e5a80439f5 100644 --- a/libiberty/d-demangle.c +++ b/libiberty/d-demangle.c @@ -399,7 +399,9 @@ dlang_function_args (string *decl, const char *mangled) return mangled; case 'Y': /* (variadic T t, ...) style. */ mangled++; - string_append (decl, ", ..."); + if (n != 0) + string_append (decl, ", "); + string_append (decl, "..."); return mangled; case 'Z': /* Normal function. */ mangled++; diff --git a/libiberty/testsuite/d-demangle-expected b/libiberty/testsuite/d-demangle-expected index 11785f2c572..8f0b167142c 100644 --- a/libiberty/testsuite/d-demangle-expected +++ b/libiberty/testsuite/d-demangle-expected @@ -342,6 +342,10 @@ _D8demangle4testFaaYv demangle.test(char, char, ...) # --format=dlang +_D8demangle4testFYv +demangle.test(...) +# +--format=dlang _D8demangle4testFaaZv demangle.test(char, char) #