cp-demangle.c (cplus_demangle_type): Check for invalid type after "DF".

* cp-demangle.c (cplus_demangle_type): Check for invalid type
	after "DF".
	* testsuite/demangle-expected: Add test.

From-SVN: r156227
This commit is contained in:
Ian Lance Taylor 2010-01-26 04:09:43 +00:00 committed by Ian Lance Taylor
parent 3b61a2be9d
commit 3309111df1
3 changed files with 14 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2010-01-25 Ian Lance Taylor <iant@google.com>
* cp-demangle.c (cplus_demangle_type): Check for invalid type
after "DF".
* testsuite/demangle-expected: Add test.
2010-01-21 Release Manager
* GCC 4.4.3 released.

View File

@ -1,5 +1,5 @@
/* Demangler for g++ V3 ABI.
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Written by Ian Lance Taylor <ian@wasabisystems.com>.
@ -2149,6 +2149,8 @@ cplus_demangle_type (struct d_info *di)
/* For demangling we don't care about the bits. */
d_number (di);
ret->u.s_fixed.length = cplus_demangle_type (di);
if (ret->u.s_fixed.length == NULL)
return NULL;
d_number (di);
peek = d_next_char (di);
ret->u.s_fixed.sat = (peek == 's');

View File

@ -3910,3 +3910,8 @@ decltype (parm#1+((x())())) A<int>::j<int>(int)
--format=gnu-v3
_Z1gIIidEEDTclL_Z1fEspplfp_Li1EEEDpT_
decltype (f((parm#1+(1))...)) g<int, double>(int, double)
#
# Used to crash the demangler.
--format=gnu-v3
DFA
DFA