mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-06 23:50:09 +08:00
* mdebugread.c (parse_symbol): Do not set TYPE_TAG_NAME for
compiler generated tag names. * mdebugread.c (parse_type): Handle cross references to qualified aggregate types. * valops.c (value_struct_elt): Improve error message if the address of a method is requested from an object instance. * valops.c (search_struct_method): Make name_matched non-static to get it initialized correctly.
This commit is contained in:
@ -1,3 +1,16 @@
|
|||||||
|
Wed Jan 12 13:23:37 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||||
|
|
||||||
|
* mdebugread.c (parse_symbol): Do not set TYPE_TAG_NAME for
|
||||||
|
compiler generated tag names.
|
||||||
|
* mdebugread.c (parse_type): Handle cross references to qualified
|
||||||
|
aggregate types.
|
||||||
|
* valops.c (value_struct_elt): Improve error message if the
|
||||||
|
address of a method is requested from an object instance.
|
||||||
|
* valops.c (search_struct_method): Make name_matched non-static
|
||||||
|
to get it initialized correctly.
|
||||||
|
* config/i386/nm-i386sco.h (CANNOT_STORE_REGISTER): Define to
|
||||||
|
exclude segment register which are not writable on newer SCO versions.
|
||||||
|
|
||||||
Wed Jan 12 14:44:45 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
Wed Jan 12 14:44:45 1994 Jim Kingdon (kingdon@lioth.cygnus.com)
|
||||||
|
|
||||||
* go32-xdep.c: Remove unused function uerror.
|
* go32-xdep.c: Remove unused function uerror.
|
||||||
|
@ -993,8 +993,10 @@ parse_symbol (sh, ax, ext_sh, bigend)
|
|||||||
else
|
else
|
||||||
t = pend->t;
|
t = pend->t;
|
||||||
|
|
||||||
/* Alpha cc unnamed structs do not get a tag name. */
|
/* Do not set the tag name if it is a compiler generated tag name
|
||||||
if (sh->iss == 0)
|
(.Fxx or .xxfake or empty) for unnamed struct/union/enums.
|
||||||
|
Alpha cc puts out an sh->iss of zero for those. */
|
||||||
|
if (sh->iss == 0 || name[0] == '.' || name[0] == '\0')
|
||||||
TYPE_TAG_NAME (t) = NULL;
|
TYPE_TAG_NAME (t) = NULL;
|
||||||
else
|
else
|
||||||
TYPE_TAG_NAME (t) = obconcat (¤t_objfile->symbol_obstack,
|
TYPE_TAG_NAME (t) = obconcat (¤t_objfile->symbol_obstack,
|
||||||
@ -1011,7 +1013,7 @@ parse_symbol (sh, ax, ext_sh, bigend)
|
|||||||
{
|
{
|
||||||
/* This is a non-empty enum. */
|
/* This is a non-empty enum. */
|
||||||
|
|
||||||
/* c89 has the number of enumerators in the sh.value field,
|
/* DEC c89 has the number of enumerators in the sh.value field,
|
||||||
not the type length, so we have to compensate for that
|
not the type length, so we have to compensate for that
|
||||||
incompatibility quirk.
|
incompatibility quirk.
|
||||||
This might do the wrong thing for an enum with one or two
|
This might do the wrong thing for an enum with one or two
|
||||||
@ -1425,6 +1427,12 @@ parse_type (fd, ax, aux_index, bs, bigend, sym_name)
|
|||||||
if (tp == (struct type *) NULL)
|
if (tp == (struct type *) NULL)
|
||||||
tp = init_type (type_code, 0, 0, (char *) NULL, current_objfile);
|
tp = init_type (type_code, 0, 0, (char *) NULL, current_objfile);
|
||||||
|
|
||||||
|
/* DEC c89 produces cross references to qualified aggregate types,
|
||||||
|
dereference them. */
|
||||||
|
while (TYPE_CODE (tp) == TYPE_CODE_PTR
|
||||||
|
|| TYPE_CODE (tp) == TYPE_CODE_ARRAY)
|
||||||
|
tp = tp->target_type;
|
||||||
|
|
||||||
/* Make sure that TYPE_CODE(tp) has an expected type code.
|
/* Make sure that TYPE_CODE(tp) has an expected type code.
|
||||||
Any type may be returned from cross_ref if file indirect entries
|
Any type may be returned from cross_ref if file indirect entries
|
||||||
are corrupted. */
|
are corrupted. */
|
||||||
|
Reference in New Issue
Block a user