Commit 46fb0d7d by Jim Wilson Committed by Jim Wilson

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
parent 913d8e13
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> Fri Sep 25 19:30:19 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
* sh.c (gen_shl_sext): Fix case 5. * sh.c (gen_shl_sext): Fix case 5.
......
...@@ -1206,34 +1206,41 @@ sdbout_one_type (type) ...@@ -1206,34 +1206,41 @@ sdbout_one_type (type)
/* Print out the base class information with fields /* Print out the base class information with fields
named after the types they hold. */ named after the types they hold. */
if (TYPE_BINFO (type) /* This is only relevent to aggregate types. TYPE_BINFO is used
&& TYPE_BINFO_BASETYPES (type)) for other purposes in an ENUMERAL_TYPE, so we must exclude that
n_baseclasses = TREE_VEC_LENGTH (TYPE_BINFO_BASETYPES (type)); case. */
for (i = 0; i < n_baseclasses; i++) if (TREE_CODE (type) != ENUMERAL_TYPE)
{ {
tree child = TREE_VEC_ELT (BINFO_BASETYPES (TYPE_BINFO (type)), i); if (TYPE_BINFO (type)
tree child_type = BINFO_TYPE (child); && TYPE_BINFO_BASETYPES (type))
tree child_type_name; n_baseclasses = TREE_VEC_LENGTH (TYPE_BINFO_BASETYPES (type));
if (TYPE_NAME (child_type) == 0) for (i = 0; i < n_baseclasses; i++)
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)); tree child = TREE_VEC_ELT (BINFO_BASETYPES (TYPE_BINFO (type)),
if (child_type_name && template_name_p (child_type_name)) i);
child_type_name tree child_type = BINFO_TYPE (child);
= DECL_ASSEMBLER_NAME (TYPE_NAME (child_type)); tree child_type_name;
} if (TYPE_NAME (child_type) == 0)
else continue;
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; CONTIN;
PUT_SDB_DEF (IDENTIFIER_POINTER (child_type_name)); PUT_SDB_DEF (IDENTIFIER_POINTER (child_type_name));
PUT_SDB_INT_VAL (TREE_INT_CST_LOW (BINFO_OFFSET (child))); PUT_SDB_INT_VAL (TREE_INT_CST_LOW (BINFO_OFFSET (child)));
PUT_SDB_SCL (member_scl); PUT_SDB_SCL (member_scl);
sdbout_type (BINFO_TYPE (child)); sdbout_type (BINFO_TYPE (child));
PUT_SDB_ENDEF; PUT_SDB_ENDEF;
}
} }
/* output the individual fields */ /* output the individual fields */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment