mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 06:17:47 +08:00
merge from gcc
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2008-12-10 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
* demangle.h (enum demangle_component_type): Add
|
||||||
|
DEMANGLE_COMPONENT_FIXED_TYPE.
|
||||||
|
|
||||||
2008-12-01 Cary Coutant <ccoutant@google.com>
|
2008-12-01 Cary Coutant <ccoutant@google.com>
|
||||||
|
|
||||||
* plugin-api.h (ld_plugin_message): Change format parameter to const.
|
* plugin-api.h (ld_plugin_message): Change format parameter to const.
|
||||||
|
@ -319,6 +319,8 @@ enum demangle_component_type
|
|||||||
and the right subtree is the member type. CV-qualifiers appear
|
and the right subtree is the member type. CV-qualifiers appear
|
||||||
on the latter. */
|
on the latter. */
|
||||||
DEMANGLE_COMPONENT_PTRMEM_TYPE,
|
DEMANGLE_COMPONENT_PTRMEM_TYPE,
|
||||||
|
/* A fixed-point type. */
|
||||||
|
DEMANGLE_COMPONENT_FIXED_TYPE,
|
||||||
/* An argument list. The left subtree is the current argument, and
|
/* An argument list. The left subtree is the current argument, and
|
||||||
the right subtree is either NULL or another ARGLIST node. */
|
the right subtree is either NULL or another ARGLIST node. */
|
||||||
DEMANGLE_COMPONENT_ARGLIST,
|
DEMANGLE_COMPONENT_ARGLIST,
|
||||||
@ -419,6 +421,17 @@ struct demangle_component
|
|||||||
struct demangle_component *name;
|
struct demangle_component *name;
|
||||||
} s_extended_operator;
|
} s_extended_operator;
|
||||||
|
|
||||||
|
/* For DEMANGLE_COMPONENT_FIXED_TYPE. */
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
/* The length, indicated by a C integer type name. */
|
||||||
|
struct demangle_component *length;
|
||||||
|
/* _Accum or _Fract? */
|
||||||
|
short accum;
|
||||||
|
/* Saturating or not? */
|
||||||
|
short sat;
|
||||||
|
} s_fixed;
|
||||||
|
|
||||||
/* For DEMANGLE_COMPONENT_CTOR. */
|
/* For DEMANGLE_COMPONENT_CTOR. */
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2008-12-10 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
* cp-demangle.c (cplus_demangle_type): Support fixed-point types.
|
||||||
|
(d_print_comp, d_dump): Likewise.
|
||||||
|
|
||||||
2008-10-22 Daniel Jacobowitz <dan@codesourcery.com>
|
2008-10-22 Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
* Makefile.in (CPPFLAGS): Define.
|
* Makefile.in (CPPFLAGS): Define.
|
||||||
|
@ -621,6 +621,9 @@ d_dump (struct demangle_component *dc, int indent)
|
|||||||
case DEMANGLE_COMPONENT_PTRMEM_TYPE:
|
case DEMANGLE_COMPONENT_PTRMEM_TYPE:
|
||||||
printf ("pointer to member type\n");
|
printf ("pointer to member type\n");
|
||||||
break;
|
break;
|
||||||
|
case DEMANGLE_COMPONENT_FIXED_TYPE:
|
||||||
|
printf ("fixed-point type\n");
|
||||||
|
break;
|
||||||
case DEMANGLE_COMPONENT_ARGLIST:
|
case DEMANGLE_COMPONENT_ARGLIST:
|
||||||
printf ("argument list\n");
|
printf ("argument list\n");
|
||||||
break;
|
break;
|
||||||
@ -2115,6 +2118,19 @@ cplus_demangle_type (struct d_info *di)
|
|||||||
ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[31]);
|
ret = d_make_builtin_type (di, &cplus_demangle_builtin_types[31]);
|
||||||
di->expansion += ret->u.s_builtin.type->len;
|
di->expansion += ret->u.s_builtin.type->len;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'F':
|
||||||
|
/* Fixed point types. DF<int bits><length><fract bits><sat> */
|
||||||
|
ret = d_make_empty (di);
|
||||||
|
ret->type = DEMANGLE_COMPONENT_FIXED_TYPE;
|
||||||
|
if ((ret->u.s_fixed.accum = IS_DIGIT (d_peek_char (di))))
|
||||||
|
/* For demangling we don't care about the bits. */
|
||||||
|
d_number (di);
|
||||||
|
ret->u.s_fixed.length = cplus_demangle_type (di);
|
||||||
|
d_number (di);
|
||||||
|
peek = d_next_char (di);
|
||||||
|
ret->u.s_fixed.sat = (peek == 's');
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -3725,6 +3741,22 @@ d_print_comp (struct d_print_info *dpi,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case DEMANGLE_COMPONENT_FIXED_TYPE:
|
||||||
|
if (dc->u.s_fixed.sat)
|
||||||
|
d_append_string (dpi, "_Sat ");
|
||||||
|
/* Don't print "int _Accum". */
|
||||||
|
if (dc->u.s_fixed.length->u.s_builtin.type
|
||||||
|
!= &cplus_demangle_builtin_types['i'-'a'])
|
||||||
|
{
|
||||||
|
d_print_comp (dpi, dc->u.s_fixed.length);
|
||||||
|
d_append_char (dpi, ' ');
|
||||||
|
}
|
||||||
|
if (dc->u.s_fixed.accum)
|
||||||
|
d_append_string (dpi, "_Accum");
|
||||||
|
else
|
||||||
|
d_append_string (dpi, "_Fract");
|
||||||
|
return;
|
||||||
|
|
||||||
case DEMANGLE_COMPONENT_ARGLIST:
|
case DEMANGLE_COMPONENT_ARGLIST:
|
||||||
case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
|
case DEMANGLE_COMPONENT_TEMPLATE_ARGLIST:
|
||||||
if (d_left (dc) != NULL)
|
if (d_left (dc) != NULL)
|
||||||
|
Reference in New Issue
Block a user