OSDN Git Service

* cp-demangle.c (d_print_comp) [DEMANGLE_COMPONENT_OPERATOR]:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Jan 2012 17:02:52 +0000 (17:02 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Jan 2012 17:02:52 +0000 (17:02 +0000)
Omit a trailing space in the operator name.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183072 138bc75d-0d04-0410-961f-82ee72b054a4

libiberty/ChangeLog
libiberty/cp-demangle.c
libiberty/testsuite/demangle-expected

index 8587ee2..e6060a7 100644 (file)
@@ -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
index 2dfd67c..18b84a1 100644 (file)
@@ -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;
       }
 
index 3f3960a..408c4f4 100644 (file)
@@ -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