* 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:
parent
92f345b9e4
commit
a8c498978e
|
@ -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)
|
||||
|
||||
* go32-xdep.c: Remove unused function uerror.
|
||||
|
|
|
@ -993,8 +993,10 @@ parse_symbol (sh, ax, ext_sh, bigend)
|
|||
else
|
||||
t = pend->t;
|
||||
|
||||
/* Alpha cc unnamed structs do not get a tag name. */
|
||||
if (sh->iss == 0)
|
||||
/* Do not set the tag name if it is a compiler generated tag name
|
||||
(.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;
|
||||
else
|
||||
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. */
|
||||
|
||||
/* 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
|
||||
incompatibility quirk.
|
||||
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)
|
||||
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.
|
||||
Any type may be returned from cross_ref if file indirect entries
|
||||
are corrupted. */
|
||||
|
|
Loading…
Reference in New Issue