Blame SOURCES/gcc32-demangle-pr16240.patch

6f1b0c
2004-06-28  Ian Lance Taylor  <ian@wasabisystems.com>
6f1b0c
6f1b0c
	PR other/16240
6f1b0c
	* cp-demangle.c (d_expr_primary): Check for a failure return from
6f1b0c
	cplus_demangle_type.
6f1b0c
	* testsuite/demangle-expected: Add test case.
6f1b0c
6f1b0c
--- libiberty/cp-demangle.c	25 Feb 2004 04:51:37 -0000	1.73
6f1b0c
+++ libiberty/cp-demangle.c	28 Jun 2004 15:23:33 -0000	1.74
6f1b0c
@@ -2398,6 +2398,8 @@ d_expr_primary (di)
6f1b0c
       const char *s;
6f1b0c
 
6f1b0c
       type = cplus_demangle_type (di);
6f1b0c
+      if (type == NULL)
6f1b0c
+	return NULL;
6f1b0c
 
6f1b0c
       /* If we have a type we know how to print, we aren't going to
6f1b0c
 	 print the type name itself.  */
6f1b0c
--- libiberty/testsuite/demangle-expected	25 Feb 2004 04:51:39 -0000	1.30
6f1b0c
+++ libiberty/testsuite/demangle-expected	28 Jun 2004 17:36:27 -0000	1.31
6f1b0c
@@ -3699,6 +3699,11 @@ _Z3fooIPA3_iEvRKT_
6f1b0c
 void foo<int (*) [3]>(int (* const&) [3])
6f1b0c
 foo<int (*) [3]>
6f1b0c
 #
6f1b0c
+# This used to crash the demangler--PR 16240
6f1b0c
+--format=gnu-v3 --no-params
6f1b0c
+_ZN13PatternDriver23StringScalarDeleteValueC1ERKNS_25ConflateStringScalarValueERKNS_25AbstractStringScalarValueERKNS_12TemplateEnumINS_12pdcomplementELZNS_16complement_namesEELZNS_14COMPLEMENTENUMEEEE
6f1b0c
+_ZN13PatternDriver23StringScalarDeleteValueC1ERKNS_25ConflateStringScalarValueERKNS_25AbstractStringScalarValueERKNS_12TemplateEnumINS_12pdcomplementELZNS_16complement_namesEELZNS_14COMPLEMENTENUMEEEE
6f1b0c
+PatternDriver::StringScalarDeleteValue::StringScalarDeleteValue
6f1b0c
 # Test GNU V3 constructor and destructor identification.
6f1b0c
 # 0 means it is not a constructor/destructor.
6f1b0c
 # Other integers correspond to enum gnu_v3_{c,d}tor_kinds in demangle.h.