aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-03-12 19:33:31 +0000
committerIan Lance Taylor <ian@airs.com>1996-03-12 19:33:31 +0000
commitefda824b08154ff0e4121478247b2c415930b92d (patch)
tree2cfe4763b3de488a07501598c18e28e18f74b34a /binutils
parent4b7d2399aed55fadb8aa6fbc04d8ca966d33ab91 (diff)
downloadgdb-efda824b08154ff0e4121478247b2c415930b92d.zip
gdb-efda824b08154ff0e4121478247b2c415930b92d.tar.gz
gdb-efda824b08154ff0e4121478247b2c415930b92d.tar.bz2
* ieee.c (ieee_write_undefined_tag): Switch to global_types even
if it is not empty. (ieee_tag_type): For an enum, look through info->enums.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog4
-rw-r--r--binutils/ieee.c26
2 files changed, 30 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 9fb146b..269b706 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,5 +1,9 @@
Tue Mar 12 12:09:43 1996 Ian Lance Taylor <ian@cygnus.com>
+ * ieee.c (ieee_write_undefined_tag): Switch to global_types even
+ if it is not empty.
+ (ieee_tag_type): For an enum, look through info->enums.
+
* configure: Rebuild with autoconf 2.8.
* debug.c (debug_type_samep): Don't loop endlessly in
diff --git a/binutils/ieee.c b/binutils/ieee.c
index 1fe98bf..82f1cef 100644
--- a/binutils/ieee.c
+++ b/binutils/ieee.c
@@ -3446,6 +3446,9 @@ ieee_regno_to_genreg (abfd, r)
32 to 35 for fp0 to fp3. */
--r;
break;
+
+ default:
+ break;
}
return r;
@@ -3472,6 +3475,9 @@ ieee_genreg_to_regno (abfd, r)
32 to 35 for fp0 to fp3. */
++r;
break;
+
+ default:
+ break;
}
return r;
@@ -4674,6 +4680,14 @@ ieee_write_undefined_tag (h, p)
return false;
}
}
+ else
+ {
+ if (! ieee_change_buffer (info, &info->global_types))
+ {
+ info->error = true;
+ return false;
+ }
+ }
name_indx = info->name_indx;
++info->name_indx;
@@ -6449,6 +6463,18 @@ ieee_tag_type (p, name, id, kind)
struct ieee_name_type_hash_entry *h;
struct ieee_name_type *nt;
+ if (kind == DEBUG_KIND_ENUM)
+ {
+ struct ieee_defined_enum *e;
+
+ if (name == NULL)
+ abort ();
+ for (e = info->enums; e != NULL; e = e->next)
+ if (e->tag != NULL && strcmp (e->tag, name) == 0)
+ return ieee_push_type (info, e->indx, 0, true, false);
+ abort ();
+ }
+
localp = false;
copy = false;