X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fcoffread.c;h=98c563a3d37bf40485ee194a6cc7d89a6518a969;hb=aeeb81d1c7aae4a550685fee010a02f0c37ec57e;hp=ee8b3806cc02df38339ebd1a3ddb490135d8d6c9;hpb=fbf6506463a5de555a76cfcc153d56dc1cb9bf4b;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/coffread.c b/gdb/coffread.c index ee8b3806cc..98c563a3d3 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -1434,10 +1434,10 @@ patch_opaque_types (struct symtab *s) Remove syms from the chain when their types are stored, but search the whole chain, as there may be several syms from different files with the same name. */ - if (SYMBOL_CLASS (real_sym) == LOC_TYPEDEF && - SYMBOL_DOMAIN (real_sym) == VAR_DOMAIN && - TYPE_CODE (SYMBOL_TYPE (real_sym)) == TYPE_CODE_PTR && - TYPE_LENGTH (TYPE_TARGET_TYPE (SYMBOL_TYPE (real_sym))) != 0) + if (SYMBOL_CLASS (real_sym) == LOC_TYPEDEF + && SYMBOL_DOMAIN (real_sym) == VAR_DOMAIN + && TYPE_CODE (SYMBOL_TYPE (real_sym)) == TYPE_CODE_PTR + && TYPE_LENGTH (TYPE_TARGET_TYPE (SYMBOL_TYPE (real_sym))) != 0) { char *name = SYMBOL_LINKAGE_NAME (real_sym); int hash = hashname (name); @@ -1446,8 +1446,8 @@ patch_opaque_types (struct symtab *s) prev = 0; for (sym = opaque_type_chain[hash]; sym;) { - if (name[0] == SYMBOL_LINKAGE_NAME (sym)[0] && - strcmp (name + 1, SYMBOL_LINKAGE_NAME (sym) + 1) == 0) + if (name[0] == SYMBOL_LINKAGE_NAME (sym)[0] + && strcmp (name + 1, SYMBOL_LINKAGE_NAME (sym) + 1) == 0) { if (prev) { @@ -1503,7 +1503,7 @@ process_coff_symbol (struct coff_symbol *cs, name = cs->c_name; name = EXTERNAL_NAME (name, objfile->obfd); SYMBOL_LANGUAGE (sym) = current_subfile->language; - SYMBOL_SET_NAMES (sym, name, strlen (name), objfile); + SYMBOL_SET_NAMES (sym, name, strlen (name), 1, objfile); /* default assumptions */ SYMBOL_VALUE (sym) = cs->c_value; @@ -1632,10 +1632,10 @@ process_coff_symbol (struct coff_symbol *cs, simple forward reference (TYPE_CODE_UNDEF) is not an empty structured type, though; the forward references work themselves out via the magic of coff_lookup_type. */ - if (TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_PTR && - TYPE_LENGTH (TYPE_TARGET_TYPE (SYMBOL_TYPE (sym))) == 0 && - TYPE_CODE (TYPE_TARGET_TYPE (SYMBOL_TYPE (sym))) != - TYPE_CODE_UNDEF) + if (TYPE_CODE (SYMBOL_TYPE (sym)) == TYPE_CODE_PTR + && TYPE_LENGTH (TYPE_TARGET_TYPE (SYMBOL_TYPE (sym))) == 0 + && TYPE_CODE (TYPE_TARGET_TYPE (SYMBOL_TYPE (sym))) + != TYPE_CODE_UNDEF) { int i = hashname (SYMBOL_LINKAGE_NAME (sym)); @@ -1713,7 +1713,7 @@ decode_type (struct coff_symbol *cs, unsigned int c_type, *dim = 0; base_type = decode_type (cs, new_c_type, aux, objfile); - index_type = builtin_type_int32; + index_type = objfile_type (objfile)->builtin_int; range_type = create_range_type ((struct type *) NULL, index_type, 0, n - 1); type = @@ -1777,39 +1777,39 @@ decode_base_type (struct coff_symbol *cs, unsigned int c_type, { case T_NULL: /* shows up with "void (*foo)();" structure members */ - return builtin_type (gdbarch)->builtin_void; + return objfile_type (objfile)->builtin_void; #ifdef T_VOID case T_VOID: /* Intel 960 COFF has this symbol and meaning. */ - return builtin_type (gdbarch)->builtin_void; + return objfile_type (objfile)->builtin_void; #endif case T_CHAR: - return builtin_type (gdbarch)->builtin_char; + return objfile_type (objfile)->builtin_char; case T_SHORT: - return builtin_type (gdbarch)->builtin_short; + return objfile_type (objfile)->builtin_short; case T_INT: - return builtin_type (gdbarch)->builtin_int; + return objfile_type (objfile)->builtin_int; case T_LONG: if (cs->c_sclass == C_FIELD && aux->x_sym.x_misc.x_lnsz.x_size > gdbarch_long_bit (gdbarch)) - return builtin_type (gdbarch)->builtin_long_long; + return objfile_type (objfile)->builtin_long_long; else - return builtin_type (gdbarch)->builtin_long; + return objfile_type (objfile)->builtin_long; case T_FLOAT: - return builtin_type (gdbarch)->builtin_float; + return objfile_type (objfile)->builtin_float; case T_DOUBLE: - return builtin_type (gdbarch)->builtin_double; + return objfile_type (objfile)->builtin_double; case T_LNGDBL: - return builtin_type (gdbarch)->builtin_long_double; + return objfile_type (objfile)->builtin_long_double; case T_STRUCT: if (cs->c_naux != 1) @@ -1890,24 +1890,24 @@ decode_base_type (struct coff_symbol *cs, unsigned int c_type, break; case T_UCHAR: - return builtin_type (gdbarch)->builtin_unsigned_char; + return objfile_type (objfile)->builtin_unsigned_char; case T_USHORT: - return builtin_type (gdbarch)->builtin_unsigned_short; + return objfile_type (objfile)->builtin_unsigned_short; case T_UINT: - return builtin_type (gdbarch)->builtin_unsigned_int; + return objfile_type (objfile)->builtin_unsigned_int; case T_ULONG: if (cs->c_sclass == C_FIELD && aux->x_sym.x_misc.x_lnsz.x_size > gdbarch_long_bit (gdbarch)) - return builtin_type (gdbarch)->builtin_unsigned_long_long; + return objfile_type (objfile)->builtin_unsigned_long_long; else - return builtin_type (gdbarch)->builtin_unsigned_long; + return objfile_type (objfile)->builtin_unsigned_long; } complaint (&symfile_complaints, _("Unexpected type for symbol %s"), cs->c_name); - return builtin_type (gdbarch)->builtin_void; + return objfile_type (objfile)->builtin_void; } /* This page contains subroutines of read_type. */