From c19916b73ee3c695f168e9ddbe867124d8110caf Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Sat, 16 May 1998 20:34:43 +0000 Subject: [PATCH] * Bringing over patches for PR 15870, 15653 from chill/d30v branches. Also, fixed a small third-party sanitize typo in ChangeLog. --- gdb/ChangeLog | 17 ++++++++++++++++- gdb/config/d30v/tm-d30v.h | 3 ++- gdb/stabsread.c | 14 ++++++++------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 093b4af54d..d81a635a32 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +start-sanitize-d30v +Sat May 16 22:21:48 1998 Frank Ch. Eigler + + * config/d30v/tm-d30v.h (INIT_FRAME_PC_FIRST): Fill in PC into + frame struct before extracting saved register offsets. + +end-sanitize-d30v Thu May 14 5:51:00 1998 Ron Unrau * symtab.c (decode_line_1): set section for "break *" @@ -25,6 +32,11 @@ start-sanitize-java targets. end-sanitize-java +Tue May 12 13:17:35 1998 Frank Ch. Eigler + + * stabsread.c (read_one_struct_field): Check for typedef in type + tree before clearing bitfield information. + Thu May 7 14:49:38 1998 Bob Manson * config/sparc/tm-sp64.h (CALL_DUMMY): Store and retrieve @@ -635,11 +647,14 @@ end-sanitize-sky Tue Mar 24 16:22:40 1998 Stu Grossman * Makefile.in: Derive SHELL from configure. - * config/d10v/d10v.mt config/d30v/d30v.mt config/m32r/m32r.mt + * config/d10v/d10v.mt config/m32r/m32r.mt config/mn10200/mn10200.mt config/mn10300/mn10300.mt : Remove -lm from SIM. This prevents dependency checking of -lm (under NT native builds). (It is automatically added by configure if it exists.) +start-sanitize-d30v + * config/d30v/d30v.mt: Ditto. +end-sanitize-d30v * doc/configure mswin/configure nlm/configure testsuite/gdb.base/configure testsuite/gdb.c++/configure testsuite/gdb.chill/configure testsuite/gdb.disasm/configure diff --git a/gdb/config/d30v/tm-d30v.h b/gdb/config/d30v/tm-d30v.h index bd15ef53fa..3455ed175e 100644 --- a/gdb/config/d30v/tm-d30v.h +++ b/gdb/config/d30v/tm-d30v.h @@ -228,7 +228,8 @@ extern void d30v_init_extra_frame_info PARAMS (( int fromleaf, struct frame_info #define FRAME_ARGS_ADDRESS(fi) (fi)->frame #define FRAME_LOCALS_ADDRESS(fi) (fi)->frame -#define INIT_FRAME_PC(fromleaf, prev) d30v_init_frame_pc(fromleaf, prev) +#define INIT_FRAME_PC_FIRST(fromleaf, prev) d30v_init_frame_pc(fromleaf, prev) +#define INIT_FRAME_PC(fromleaf, prev) /* nada */ /* Immediately after a function call, return the saved pc. We can't */ /* use frame->return_pc beause that is determined by reading R62 off the */ diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 480bb1cbb3..be562e50a1 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -3433,16 +3433,18 @@ read_one_struct_field (fip, pp, p, type, objfile) Note that forward refs cannot be packed, and treat enums as if they had the width of ints. */ - if (TYPE_CODE (FIELD_TYPE (fip->list->field)) != TYPE_CODE_INT - && TYPE_CODE (FIELD_TYPE (fip->list->field)) != TYPE_CODE_RANGE - && TYPE_CODE (FIELD_TYPE (fip->list->field)) != TYPE_CODE_BOOL - && TYPE_CODE (FIELD_TYPE (fip->list->field)) != TYPE_CODE_ENUM) + struct type *field_type = check_typedef (FIELD_TYPE (fip->list->field)); + + if (TYPE_CODE (field_type) != TYPE_CODE_INT + && TYPE_CODE (field_type) != TYPE_CODE_RANGE + && TYPE_CODE (field_type) != TYPE_CODE_BOOL + && TYPE_CODE (field_type) != TYPE_CODE_ENUM) { FIELD_BITSIZE (fip->list->field) = 0; } if ((FIELD_BITSIZE (fip->list->field) - == TARGET_CHAR_BIT * TYPE_LENGTH (FIELD_TYPE (fip->list->field)) - || (TYPE_CODE (FIELD_TYPE (fip->list->field)) == TYPE_CODE_ENUM + == TARGET_CHAR_BIT * TYPE_LENGTH (field_type) + || (TYPE_CODE (field_type) == TYPE_CODE_ENUM && FIELD_BITSIZE (fip->list->field) == TARGET_INT_BIT ) ) &&