aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@redhat.com>1998-05-16 20:34:43 +0000
committerFrank Ch. Eigler <fche@redhat.com>1998-05-16 20:34:43 +0000
commitc19916b73ee3c695f168e9ddbe867124d8110caf (patch)
tree3ad95e3c05aae10c3900ed2666c2786d01e9bd4f
parent5f4c24c02420ceb55b2b4fa22428bacb0f56e4cc (diff)
downloadfsf-binutils-gdb-c19916b73ee3c695f168e9ddbe867124d8110caf.zip
fsf-binutils-gdb-c19916b73ee3c695f168e9ddbe867124d8110caf.tar.gz
fsf-binutils-gdb-c19916b73ee3c695f168e9ddbe867124d8110caf.tar.bz2
* Bringing over patches for PR 15870, 15653 from chill/d30v branches.
Also, fixed a small third-party sanitize typo in ChangeLog.
-rw-r--r--gdb/ChangeLog17
-rw-r--r--gdb/config/d30v/tm-d30v.h3
-rw-r--r--gdb/stabsread.c14
3 files changed, 26 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 093b4af..d81a635 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+start-sanitize-d30v
+Sat May 16 22:21:48 1998 Frank Ch. Eigler <fche@cygnus.com>
+
+ * 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 <runrau@cygnus.com>
* symtab.c (decode_line_1): set section for "break *<addr>"
@@ -25,6 +32,11 @@ start-sanitize-java
targets.
end-sanitize-java
+Tue May 12 13:17:35 1998 Frank Ch. Eigler <fche@cygnus.com>
+
+ * 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 <manson@charmed.cygnus.com>
* 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 <grossman@bhuna.cygnus.co.uk>
* 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 bd15ef5..3455ed1 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 480bb1c..be562e5 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 )
)
&&