Commit f2e6f32e by Ian Lance Taylor Committed by Ian Lance Taylor

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
parent 9f61fd17
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> 2011-07-22 Gerald Pfeifer <gerald@pfeifer.com>
PR target/49817 PR target/49817
......
/* Demangler for g++ V3 ABI. /* 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. Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@wasabisystems.com>. Written by Ian Lance Taylor <ian@wasabisystems.com>.
...@@ -3306,6 +3306,7 @@ d_print_init (struct d_print_info *dpi, demangle_callbackref callback, ...@@ -3306,6 +3306,7 @@ d_print_init (struct d_print_info *dpi, demangle_callbackref callback,
dpi->last_char = '\0'; dpi->last_char = '\0';
dpi->templates = NULL; dpi->templates = NULL;
dpi->modifiers = NULL; dpi->modifiers = NULL;
dpi->pack_index = 0;
dpi->flush_count = 0; dpi->flush_count = 0;
dpi->callback = callback; dpi->callback = callback;
...@@ -3893,6 +3894,13 @@ d_print_comp (struct d_print_info *dpi, int options, ...@@ -3893,6 +3894,13 @@ d_print_comp (struct d_print_info *dpi, int options,
struct demangle_component *a = d_lookup_template_argument (dpi, sub); struct demangle_component *a = d_lookup_template_argument (dpi, sub);
if (a && a->type == DEMANGLE_COMPONENT_TEMPLATE_ARGLIST) if (a && a->type == DEMANGLE_COMPONENT_TEMPLATE_ARGLIST)
a = d_index_template_argument (a, dpi->pack_index); a = d_index_template_argument (a, dpi->pack_index);
if (a == NULL)
{
d_print_error (dpi);
return;
}
sub = a; sub = a;
} }
......
...@@ -4010,6 +4010,12 @@ K<1, &S::m>::f() ...@@ -4010,6 +4010,12 @@ K<1, &S::m>::f()
_ZN1KILi1EXadL_ZN1S1mEEEE1fEv _ZN1KILi1EXadL_ZN1S1mEEEE1fEv
K<1, &S::m>::f() 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. # Ada (GNAT) tests.
# #
# Simple test. # Simple test.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment