• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

Revision1b1d112451c4fe26fc741f5860919bfb41d99822 (tree)
Time2004-03-10 02:10:19
AuthorDaniel Jacobowitz <drow@fals...>
CommiterDaniel Jacobowitz

Log Message

* arm-tdep.c (arm_use_struct_convention): Look through typedefs.
* gdbtypes.c (check_typedef): Update comments.

Change Summary

Incremental Difference

--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
11 2004-03-09 Daniel Jacobowitz <drow@mvista.com>
22
3+ * arm-tdep.c (arm_use_struct_convention): Look through typedefs.
4+ * gdbtypes.c (check_typedef): Update comments.
5+
6+2004-03-09 Daniel Jacobowitz <drow@mvista.com>
7+
38 * arm-tdep.c (thumb_get_next_pc): Handle Thumb BLX.
49
510 2004-03-07 Daniel Jacobowitz <drow@mvista.com>
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -2173,6 +2173,8 @@ arm_use_struct_convention (int gcc_p, struct type *type)
21732173 int nRc;
21742174 enum type_code code;
21752175
2176+ CHECK_TYPEDEF (type);
2177+
21762178 /* In the ARM ABI, "integer" like aggregate types are returned in
21772179 registers. For an aggregate type to be integer like, its size
21782180 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)
22302232 for (i = 0; i < TYPE_NFIELDS (type); i++)
22312233 {
22322234 enum type_code field_type_code;
2233- field_type_code = TYPE_CODE (TYPE_FIELD_TYPE (type, i));
2235+ field_type_code = TYPE_CODE (check_typedef (TYPE_FIELD_TYPE (type, i)));
22342236
22352237 /* Is it a floating point type field? */
22362238 if (field_type_code == TYPE_CODE_FLT)
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1343,6 +1343,12 @@ get_destructor_fn_field (struct type *t, int *method_indexp, int *field_indexp)
13431343 return 0;
13441344 }
13451345
1346+static void
1347+stub_noname_complaint (void)
1348+{
1349+ complaint (&symfile_complaints, "stub type has NULL name");
1350+}
1351+
13461352 /* Added by Bryan Boreham, Kewill, Sun Sep 17 18:07:17 1989.
13471353
13481354 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)
13561362 This used to be coded as a macro, but I don't think it is called
13571363 often enough to merit such treatment. */
13581364
1359-static void
1360-stub_noname_complaint (void)
1361-{
1362- complaint (&symfile_complaints, "stub type has NULL name");
1363-}
1365+/* Find the real type of TYPE. This function returns the real type, after
1366+ removing all layers of typedefs and completing opaque or stub types.
1367+ Completion changes the TYPE argument, but stripping of typedefs does
1368+ not. */
13641369
13651370 struct type *
13661371 check_typedef (struct type *type)