* ieee.c (ieee_define_named_type): When creating a tag for an
anonymous struct, copy the name into memory. (ieee_tag_type): Likewise. * debug.c (debug_write_type): Only check and set id field for an unnamed object. (debug_write_class_type): Likewise.
This commit is contained in:
parent
397a4fa366
commit
76e45938c3
3 changed files with 24 additions and 7 deletions
|
@ -2576,7 +2576,7 @@ debug_write_type (info, fns, fhandle, type, name)
|
|||
if (type->u.kclass != NULL)
|
||||
{
|
||||
if (info->class_mark == type->u.kclass->mark
|
||||
|| type->u.kclass->id > info->base_id)
|
||||
|| (tag == NULL && type->u.kclass->id > info->base_id))
|
||||
{
|
||||
/* We are currently outputting this struct, or we have
|
||||
already output it. I don't know if this can happen,
|
||||
|
@ -2586,8 +2586,11 @@ debug_write_type (info, fns, fhandle, type, name)
|
|||
type->kind);
|
||||
}
|
||||
type->u.kclass->mark = info->class_mark;
|
||||
++info->class_id;
|
||||
type->u.kclass->id = info->class_id;
|
||||
if (tag == NULL)
|
||||
{
|
||||
++info->class_id;
|
||||
type->u.kclass->id = info->class_id;
|
||||
}
|
||||
}
|
||||
|
||||
if (! (*fns->start_struct_type) (fhandle, tag,
|
||||
|
@ -2748,7 +2751,7 @@ debug_write_class_type (info, fns, fhandle, type, tag)
|
|||
else
|
||||
{
|
||||
if (info->class_mark == type->u.kclass->mark
|
||||
|| type->u.kclass->id > info->base_id)
|
||||
|| (tag == NULL && type->u.kclass->id > info->base_id))
|
||||
{
|
||||
/* We are currently outputting this class, or we have
|
||||
already output it. This can happen when there are
|
||||
|
@ -2758,9 +2761,12 @@ debug_write_class_type (info, fns, fhandle, type, tag)
|
|||
type->kind);
|
||||
}
|
||||
type->u.kclass->mark = info->class_mark;
|
||||
++info->class_id;
|
||||
id = info->class_id;
|
||||
type->u.kclass->id = id;
|
||||
if (tag == NULL)
|
||||
{
|
||||
++info->class_id;
|
||||
type->u.kclass->id = info->class_id;
|
||||
}
|
||||
id = type->u.kclass->id;
|
||||
|
||||
vptrbase = type->u.kclass->vptrbase;
|
||||
if (vptrbase != NULL && vptrbase != type)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue