From 9934703b912c81702a1a74dd0337d5e3fd291a0f Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Tue, 10 Jan 2012 19:29:12 +0000 Subject: gdb/ Fix regression after libiberty/ update for GCC PR 6057 and others. * c-exp.y (operator) (operator) : Add trailing space. * cp-name-parser.y (fill_comp, make_operator, make_dtor) (make_builtin_type, make_name): New variable i, add gdb_assert. (operator) : Update ARGS to 3. (operator) : Add trailing space. (operator) : Update ARGS to 3. (operator) : Add trailing space. * cp-support.c (cp_canonicalize_string): Check NULL from cp_comp_to_string, call warning and return. --- gdb/cp-name-parser.y | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) (limited to 'gdb/cp-name-parser.y') diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y index 8b4a1b9..d85a5bf 100644 --- a/gdb/cp-name-parser.y +++ b/gdb/cp-name-parser.y @@ -188,7 +188,11 @@ fill_comp (enum demangle_component_type d_type, struct demangle_component *lhs, struct demangle_component *rhs) { struct demangle_component *ret = d_grab (); - cplus_demangle_fill_component (ret, d_type, lhs, rhs); + int i; + + i = cplus_demangle_fill_component (ret, d_type, lhs, rhs); + gdb_assert (i); + return ret; } @@ -204,7 +208,11 @@ static struct demangle_component * make_operator (const char *name, int args) { struct demangle_component *ret = d_grab (); - cplus_demangle_fill_operator (ret, name, args); + int i; + + i = cplus_demangle_fill_operator (ret, name, args); + gdb_assert (i); + return ret; } @@ -212,7 +220,11 @@ static struct demangle_component * make_dtor (enum gnu_v3_dtor_kinds kind, struct demangle_component *name) { struct demangle_component *ret = d_grab (); - cplus_demangle_fill_dtor (ret, kind, name); + int i; + + i = cplus_demangle_fill_dtor (ret, kind, name); + gdb_assert (i); + return ret; } @@ -220,7 +232,11 @@ static struct demangle_component * make_builtin_type (const char *name) { struct demangle_component *ret = d_grab (); - cplus_demangle_fill_builtin_type (ret, name); + int i; + + i = cplus_demangle_fill_builtin_type (ret, name); + gdb_assert (i); + return ret; } @@ -228,7 +244,11 @@ static struct demangle_component * make_name (const char *name, int len) { struct demangle_component *ret = d_grab (); - cplus_demangle_fill_name (ret, name, len); + int i; + + i = cplus_demangle_fill_name (ret, name, len); + gdb_assert (i); + return ret; } @@ -420,13 +440,13 @@ demangler_special ; operator : OPERATOR NEW - { $$ = make_operator ("new", 1); } + { $$ = make_operator ("new", 3); } | OPERATOR DELETE - { $$ = make_operator ("delete", 1); } + { $$ = make_operator ("delete ", 1); } | OPERATOR NEW '[' ']' - { $$ = make_operator ("new[]", 1); } + { $$ = make_operator ("new[]", 3); } | OPERATOR DELETE '[' ']' - { $$ = make_operator ("delete[]", 1); } + { $$ = make_operator ("delete[] ", 1); } | OPERATOR '+' { $$ = make_operator ("+", 2); } | OPERATOR '-' -- cgit v1.1