cp-demangle.c (d_print_init): Initialize pack_index field.

* cp-demangle.c (d_print_init): Initialize pack_index field.
	(d_print_comp): Check for NULL template argument.
	* testsuite/demangle-expected: Add test case.

From-SVN: r176791
This commit is contained in:
Ian Lance Taylor 2011-07-26 14:28:23 +00:00 committed by Ian Lance Taylor
parent 9f61fd1747
commit f2e6f32e60
3 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2011-07-26 Ian Lance Taylor <iant@google.com>
* cp-demangle.c (d_print_init): Initialize pack_index field.
(d_print_comp): Check for NULL template argument.
* testsuite/demangle-expected: Add test case.
2011-07-22 Gerald Pfeifer <gerald@pfeifer.com>
PR target/49817

View File

@ -1,5 +1,5 @@
/* Demangler for g++ V3 ABI.
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@wasabisystems.com>.
@ -3306,6 +3306,7 @@ d_print_init (struct d_print_info *dpi, demangle_callbackref callback,
dpi->last_char = '\0';
dpi->templates = NULL;
dpi->modifiers = NULL;
dpi->pack_index = 0;
dpi->flush_count = 0;
dpi->callback = callback;
@ -3893,6 +3894,13 @@ d_print_comp (struct d_print_info *dpi, int options,
struct demangle_component *a = d_lookup_template_argument (dpi, sub);
if (a && a->type == DEMANGLE_COMPONENT_TEMPLATE_ARGLIST)
a = d_index_template_argument (a, dpi->pack_index);
if (a == NULL)
{
d_print_error (dpi);
return;
}
sub = a;
}

View File

@ -4010,6 +4010,12 @@ K<1, &S::m>::f()
_ZN1KILi1EXadL_ZN1S1mEEEE1fEv
K<1, &S::m>::f()
#
# Used to crash -- binutils PR 13030.
--format=gnu-v3
_ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_
_ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_
_ZSt10_ConstructI10CellBorderIS0_EEvPT_DpOT0_
#
# Ada (GNAT) tests.
#
# Simple test.