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