Fix nightly testing i386-coff libstdc++ build failure.
authorJim Wilson <wilson@cygnus.com>
Fri, 25 Sep 1998 14:37:13 +0000 (14:37 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Fri, 25 Sep 1998 14:37:13 +0000 (07:37 -0700)
* sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.

From-SVN: r22592

gcc/ChangeLog
gcc/sdbout.c

index a7f1b600a223cfd72f50bc959105c55491811f85..1972e4c356843c832140b1f3e13039d8ecd36268 100644 (file)
@@ -1,3 +1,7 @@
+Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
+
+       * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
+
 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
 
        * sh.c (gen_shl_sext): Fix case 5.
index 791bd75a57896d0035ccf01b6e6a50409e9701f8..1823155cea5a9b048b56f0b78630fc620f5e0b5a 100644 (file)
@@ -1206,34 +1206,41 @@ sdbout_one_type (type)
 
        /* Print out the base class information with fields
           named after the types they hold.  */
-       if (TYPE_BINFO (type)
-           && TYPE_BINFO_BASETYPES (type))
-         n_baseclasses = TREE_VEC_LENGTH (TYPE_BINFO_BASETYPES (type));
-       for (i = 0; i < n_baseclasses; i++)
+       /* This is only relevent to aggregate types.  TYPE_BINFO is used
+          for other purposes in an ENUMERAL_TYPE, so we must exclude that
+          case.  */
+       if (TREE_CODE (type) != ENUMERAL_TYPE)
          {
-           tree child = TREE_VEC_ELT (BINFO_BASETYPES (TYPE_BINFO (type)), i);
-           tree child_type = BINFO_TYPE (child);
-           tree child_type_name;
-           if (TYPE_NAME (child_type) == 0)
-             continue;
-           if (TREE_CODE (TYPE_NAME (child_type)) == IDENTIFIER_NODE)
-             child_type_name = TYPE_NAME (child_type);
-           else if (TREE_CODE (TYPE_NAME (child_type)) == TYPE_DECL)
+           if (TYPE_BINFO (type)
+               && TYPE_BINFO_BASETYPES (type))
+             n_baseclasses = TREE_VEC_LENGTH (TYPE_BINFO_BASETYPES (type));
+           for (i = 0; i < n_baseclasses; i++)
              {
-               child_type_name = DECL_NAME (TYPE_NAME (child_type));
-               if (child_type_name && template_name_p (child_type_name))
-                 child_type_name
-                   = DECL_ASSEMBLER_NAME (TYPE_NAME (child_type));
-             }
-           else
-             continue;
+               tree child = TREE_VEC_ELT (BINFO_BASETYPES (TYPE_BINFO (type)),
+                                          i);
+               tree child_type = BINFO_TYPE (child);
+               tree child_type_name;
+               if (TYPE_NAME (child_type) == 0)
+                 continue;
+               if (TREE_CODE (TYPE_NAME (child_type)) == IDENTIFIER_NODE)
+                 child_type_name = TYPE_NAME (child_type);
+               else if (TREE_CODE (TYPE_NAME (child_type)) == TYPE_DECL)
+                 {
+                   child_type_name = DECL_NAME (TYPE_NAME (child_type));
+                   if (child_type_name && template_name_p (child_type_name))
+                     child_type_name
+                       = DECL_ASSEMBLER_NAME (TYPE_NAME (child_type));
+                 }
+               else
+                 continue;
 
-           CONTIN;
-           PUT_SDB_DEF (IDENTIFIER_POINTER (child_type_name));
-           PUT_SDB_INT_VAL (TREE_INT_CST_LOW (BINFO_OFFSET (child)));
-           PUT_SDB_SCL (member_scl);
-           sdbout_type (BINFO_TYPE (child));
-           PUT_SDB_ENDEF;
+               CONTIN;
+               PUT_SDB_DEF (IDENTIFIER_POINTER (child_type_name));
+               PUT_SDB_INT_VAL (TREE_INT_CST_LOW (BINFO_OFFSET (child)));
+               PUT_SDB_SCL (member_scl);
+               sdbout_type (BINFO_TYPE (child));
+               PUT_SDB_ENDEF;
+             }
          }
 
        /* output the individual fields */