mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
* arm-tdep.c (arm_use_struct_convention): Look through typedefs.
* gdbtypes.c (check_typedef): Update comments.
This commit is contained in:
parent
283014616e
commit
44e1a9eb25
@ -1,3 +1,8 @@
|
||||
2004-03-09 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* arm-tdep.c (arm_use_struct_convention): Look through typedefs.
|
||||
* gdbtypes.c (check_typedef): Update comments.
|
||||
|
||||
2004-03-09 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* dwarf2read.c (struct comp_unit_head): Remove dwarf2_abbrevs array.
|
||||
|
@ -2173,6 +2173,8 @@ arm_use_struct_convention (int gcc_p, struct type *type)
|
||||
int nRc;
|
||||
enum type_code code;
|
||||
|
||||
CHECK_TYPEDEF (type);
|
||||
|
||||
/* In the ARM ABI, "integer" like aggregate types are returned in
|
||||
registers. For an aggregate type to be integer like, its size
|
||||
must be less than or equal to DEPRECATED_REGISTER_SIZE and the
|
||||
@ -2230,7 +2232,7 @@ arm_use_struct_convention (int gcc_p, struct type *type)
|
||||
for (i = 0; i < TYPE_NFIELDS (type); i++)
|
||||
{
|
||||
enum type_code field_type_code;
|
||||
field_type_code = TYPE_CODE (TYPE_FIELD_TYPE (type, i));
|
||||
field_type_code = TYPE_CODE (check_typedef (TYPE_FIELD_TYPE (type, i)));
|
||||
|
||||
/* Is it a floating point type field? */
|
||||
if (field_type_code == TYPE_CODE_FLT)
|
||||
|
@ -1343,6 +1343,12 @@ get_destructor_fn_field (struct type *t, int *method_indexp, int *field_indexp)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
stub_noname_complaint (void)
|
||||
{
|
||||
complaint (&symfile_complaints, "stub type has NULL name");
|
||||
}
|
||||
|
||||
/* Added by Bryan Boreham, Kewill, Sun Sep 17 18:07:17 1989.
|
||||
|
||||
If this is a stubbed struct (i.e. declared as struct foo *), see if
|
||||
@ -1356,11 +1362,10 @@ get_destructor_fn_field (struct type *t, int *method_indexp, int *field_indexp)
|
||||
This used to be coded as a macro, but I don't think it is called
|
||||
often enough to merit such treatment. */
|
||||
|
||||
static void
|
||||
stub_noname_complaint (void)
|
||||
{
|
||||
complaint (&symfile_complaints, "stub type has NULL name");
|
||||
}
|
||||
/* Find the real type of TYPE. This function returns the real type, after
|
||||
removing all layers of typedefs and completing opaque or stub types.
|
||||
Completion changes the TYPE argument, but stripping of typedefs does
|
||||
not. */
|
||||
|
||||
struct type *
|
||||
check_typedef (struct type *type)
|
||||
|
Loading…
Reference in New Issue
Block a user