On 07/06/2015 01:40 PM, Mikhail Maltsev wrote:
---
  libiberty/cp-demangle.c               |  3 +++
  libiberty/testsuite/demangle-expected | 12 ++++++++++++
  2 files changed, 15 insertions(+)

diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index 289a704..4ca285e 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -4203,6 +4203,9 @@ d_find_pack (struct d_print_info *dpi,
      case DEMANGLE_COMPONENT_CHARACTER:
      case DEMANGLE_COMPONENT_FUNCTION_PARAM:
      case DEMANGLE_COMPONENT_UNNAMED_TYPE:
+    case DEMANGLE_COMPONENT_FIXED_TYPE:
+    case DEMANGLE_COMPONENT_DEFAULT_ARG:
+    case DEMANGLE_COMPONENT_NUMBER:
        return NULL;

      case DEMANGLE_COMPONENT_EXTENDED_OPERATOR:
diff --git a/libiberty/testsuite/demangle-expected
b/libiberty/testsuite/demangle-expected
index cfa2691..b58cea2 100644
--- a/libiberty/testsuite/demangle-expected
+++ b/libiberty/testsuite/demangle-expected
@@ -4108,6 +4108,18 @@ _ZDTtl
  --format=gnu-v3
  _ZZN1fEEd_lEv
  _ZZN1fEEd_lEv
+# Handle DEMANGLE_COMPONENT_FIXED_TYPE in d_find_pack
+--format=gnu-v3
+DpDFT_
+DpDFT_
+# Likewise, DEMANGLE_COMPONENT_DEFAULT_ARG
+--format=gnu-v3
+DpZ1fEd_
+DpZ1fEd_
+# Likewise, DEMANGLE_COMPONENT_NUMBER (??? result is probably still wrong)
+--format=gnu-v3
+DpDv1_c
+(char __vector(1))...
  #
  # Ada (GNAT) tests.
  #

OK with a suitable ChangeLog entry.

FWIW, demangler.com doesn't give any results for that case. It just returns DpDv1_c

Jeff

Reply via email to