aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2016-01-27 01:07:17 +0000
committerIain Buclaw <ibuclaw@gcc.gnu.org>2016-01-27 01:07:17 +0000
commitacf1f7da9628b30a5577bf954f26e328a89c2ac7 (patch)
tree8cc3db6c0c1fe5e05e8cdb0955f8dcfa34c92e13
parent0f4b8b316f13f7da1ad4c1de233b200732966b82 (diff)
downloadgcc-acf1f7da9628b30a5577bf954f26e328a89c2ac7.zip
gcc-acf1f7da9628b30a5577bf954f26e328a89c2ac7.tar.gz
gcc-acf1f7da9628b30a5577bf954f26e328a89c2ac7.tar.bz2
d-demangle.c (dlang_function_args): Append ',' for variadic functions only if parameters were seen before the...
libiberty/ChangeLog: 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org> * 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
-rw-r--r--libiberty/ChangeLog7
-rw-r--r--libiberty/d-demangle.c4
-rw-r--r--libiberty/testsuite/d-demangle-expected4
3 files changed, 14 insertions, 1 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index aa1af40..88422c5 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,5 +1,12 @@
2016-01-27 Iain Buclaw <ibuclaw@gdcproject.org>
+ * 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 <ibuclaw@gdcproject.org>
+
* d-demangle.c (dlang_type): Handle function types only in the context
of seeing a pointer type symbol.
* testsuite/d-demangle-expected: Update function pointer tests.
diff --git a/libiberty/d-demangle.c b/libiberty/d-demangle.c
index 9c4d459..9e5a8043 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 11785f2..8f0b167 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)
#