mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 12:03:41 +08:00
gdb/
Fix regression after libiberty/ update for GCC PR 6057 and others. * c-exp.y (operator) <OPERATOR DELETE> (operator) <OPERATOR DELETE '[' ']'>: 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) <OPERATOR NEW>: Update ARGS to 3. (operator) <OPERATOR DELETE>: Add trailing space. (operator) <OPERATOR NEW '[' ']'>: Update ARGS to 3. (operator) <OPERATOR DELETE '[' ']'>: Add trailing space. * cp-support.c (cp_canonicalize_string): Check NULL from cp_comp_to_string, call warning and return.
This commit is contained in:
parent
fbfd63c0a6
commit
9934703b91
@ -1,3 +1,17 @@
|
||||
2012-01-10 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix regression after libiberty/ update for GCC PR 6057 and others.
|
||||
* c-exp.y (operator) <OPERATOR DELETE>
|
||||
(operator) <OPERATOR DELETE '[' ']'>: 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) <OPERATOR NEW>: Update ARGS to 3.
|
||||
(operator) <OPERATOR DELETE>: Add trailing space.
|
||||
(operator) <OPERATOR NEW '[' ']'>: Update ARGS to 3.
|
||||
(operator) <OPERATOR DELETE '[' ']'>: Add trailing space.
|
||||
* cp-support.c (cp_canonicalize_string): Check NULL from
|
||||
cp_comp_to_string, call warning and return.
|
||||
|
||||
2012-01-10 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix duplicate .o files after omitting libbfd.a.
|
||||
|
@ -1211,11 +1211,11 @@ const_or_volatile_noopt: const_and_volatile
|
||||
operator: OPERATOR NEW
|
||||
{ $$ = operator_stoken (" new"); }
|
||||
| OPERATOR DELETE
|
||||
{ $$ = operator_stoken (" delete"); }
|
||||
{ $$ = operator_stoken (" delete "); }
|
||||
| OPERATOR NEW '[' ']'
|
||||
{ $$ = operator_stoken (" new[]"); }
|
||||
| OPERATOR DELETE '[' ']'
|
||||
{ $$ = operator_stoken (" delete[]"); }
|
||||
{ $$ = operator_stoken (" delete[] "); }
|
||||
| OPERATOR '+'
|
||||
{ $$ = operator_stoken ("+"); }
|
||||
| OPERATOR '-'
|
||||
|
@ -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 '-'
|
||||
|
@ -528,6 +528,13 @@ cp_canonicalize_string (const char *string)
|
||||
ret = cp_comp_to_string (info->tree, estimated_len);
|
||||
cp_demangled_name_parse_free (info);
|
||||
|
||||
if (ret == NULL)
|
||||
{
|
||||
warning (_("internal error: string \"%s\" failed to be canonicalized"),
|
||||
string);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (strcmp (string, ret) == 0)
|
||||
{
|
||||
xfree (ret);
|
||||
|
Loading…
Reference in New Issue
Block a user