* ieee.c (ieee_write_undefined_tag): Switch to global_types even
authorIan Lance Taylor <ian@airs.com>
Tue, 12 Mar 1996 19:33:31 +0000 (19:33 +0000)
committerIan Lance Taylor <ian@airs.com>
Tue, 12 Mar 1996 19:33:31 +0000 (19:33 +0000)
if it is not empty.
(ieee_tag_type): For an enum, look through info->enums.

binutils/ChangeLog
binutils/ieee.c

index 9fb146bbbeaa14d1db1789d42f19fb30ee4c57cf..269b706784b51aa7cdde76ed2a05db81e0dc5c4e 100644 (file)
@@ -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
index 1fe98bf859dbb065fb8c77983169f1e67b877ce0..82f1cefef6bbc6927112295d220971bdb81306d5 100644 (file)
@@ -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;