Fix nightly testing i386-coff libstdc++ build failure.

* sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.

From-SVN: r22592
This commit is contained in:
Jim Wilson 1998-09-25 14:37:13 +00:00 committed by Jim Wilson
parent 913d8e1320
commit 46fb0d7d0f
2 changed files with 36 additions and 25 deletions

View 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.

View 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 */