* gdbtypes.c (check_typedef): Do not replace stub type if

the resolved type is not defined in the same objfile.
This commit is contained in:
Joel Brobecker 2007-02-28 16:35:49 +00:00
parent e26f076c67
commit c26f2453ab
2 changed files with 15 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2007-02-28 Jerome Guitton <guitton@adacore.com>
Joel Brobecker <brobecker@adacore.com>
* gdbtypes.c (check_typedef): Do not replace stub type if
the resolved type is not defined in the same objfile.
2007-02-28 Daniel Jacobowitz <dan@codesourcery.com>
* top.c (gdb_readline_wrapper_cleanup): Remove invalid assertion.

View File

@ -1514,7 +1514,15 @@ check_typedef (struct type *type)
}
sym = lookup_symbol (name, 0, STRUCT_DOMAIN, 0, (struct symtab **) NULL);
if (sym)
make_cv_type (is_const, is_volatile, SYMBOL_TYPE (sym), &type);
{
/* Same as above for opaque types, we can replace the stub
with the complete type only if they are int the same
objfile. */
if (TYPE_OBJFILE (SYMBOL_TYPE(sym)) == TYPE_OBJFILE (type))
make_cv_type (is_const, is_volatile, SYMBOL_TYPE (sym), &type);
else
type = SYMBOL_TYPE (sym);
}
}
if (TYPE_TARGET_STUB (type))