summaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorDJ Delorie <dj@delorie.com>2012-01-10 18:15:31 +0000
committerDJ Delorie <dj@delorie.com>2012-01-10 18:15:31 +0000
commitd6b2aeb3b72083b9291e045b4613a709f964c6a1 (patch)
tree57b1b4b61d7d962a7536698e2ca3377ff1a94c07 /libiberty
parent98bf41dc6f8c73c65fbc86e8a311166183170f61 (diff)
downloadbinutils-redhat-d6b2aeb3b72083b9291e045b4613a709f964c6a1.tar.gz
merge from gcc
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/ChangeLog5
-rw-r--r--libiberty/cp-demangle.c13
-rw-r--r--libiberty/testsuite/demangle-expected3
3 files changed, 16 insertions, 5 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 8587ee2eab..e6060a7630 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-10 Jason Merrill <jason@redhat.com>
+
+ * cp-demangle.c (d_print_comp) [DEMANGLE_COMPONENT_OPERATOR]:
+ Omit a trailing space in the operator name.
+
2012-01-06 Jason Merrill <jason@redhat.com>
PR c++/6057
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 2dfd67ceb7..18b84a126e 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -4357,14 +4357,17 @@ d_print_comp (struct d_print_info *dpi, int options,
case DEMANGLE_COMPONENT_OPERATOR:
{
- char c;
+ const struct demangle_operator_info *op = dc->u.s_operator.op;
+ int len = op->len;
d_append_string (dpi, "operator");
- c = dc->u.s_operator.op->name[0];
- if (IS_LOWER (c))
+ /* Add a space before new/delete. */
+ if (IS_LOWER (op->name[0]))
d_append_char (dpi, ' ');
- d_append_buffer (dpi, dc->u.s_operator.op->name,
- dc->u.s_operator.op->len);
+ /* Omit a trailing space. */
+ if (op->name[len-1] == ' ')
+ --len;
+ d_append_buffer (dpi, op->name, len);
return;
}
diff --git a/libiberty/testsuite/demangle-expected b/libiberty/testsuite/demangle-expected
index 3f3960a409..408c4f4779 100644
--- a/libiberty/testsuite/demangle-expected
+++ b/libiberty/testsuite/demangle-expected
@@ -4058,6 +4058,9 @@ decltype ((::delete {parm#1}),(+{parm#1})) f<int>(int*)
_Z1fIiEDTcmdafp_psfp_EPT_
decltype ((delete[] {parm#1}),(+{parm#1})) f<int>(int*)
--format=gnu-v3
+_ZN1AdlEPv
+A::operator delete(void*)
+--format=gnu-v3
_Z2f1IiEDTppfp_ET_
decltype ({parm#1}++) f1<int>(int)
--format=gnu-v3