* Bringing over patches for PR 15870, 15653 from chill/d30v branches.
authorFrank Ch. Eigler <fche@redhat.com>
Sat, 16 May 1998 20:34:43 +0000 (20:34 +0000)
committerFrank Ch. Eigler <fche@redhat.com>
Sat, 16 May 1998 20:34:43 +0000 (20:34 +0000)
  Also, fixed a small third-party sanitize typo in ChangeLog.

gdb/ChangeLog
gdb/config/d30v/tm-d30v.h
gdb/stabsread.c

index 093b4af54daf5a9ae8c6cee5689c07692b2dab19..d81a635a32d4c797cbfee5729f8e6845b27fb775 100644 (file)
@@ -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
index bd15ef53facc9bce27b60a24db3ad21db5a7fad8..3455ed175e1d8d2af458404969d4a9c4ef704a5f 100644 (file)
@@ -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 */
index 480bb1cbb3425fdeb969900b8418660a637d0ba1..be562e50a18fc8259de5e99ae51a888c898ed866 100644 (file)
@@ -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 )
           )
          &&