mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-24 20:49:43 +00:00
2005-11-03 Wu Zhou <woodzltc@cn.ibm.com>
Checked in by Elena Zannoni <ezannoni@redhat.com> * dwarf2read.c (read_structure_type): Add IBM XL C++ specific code to set TYPE_VPTR_FIELDNO and TYPE_VPTR_BASETYPE of a virtual class if a field named "__vfp" is found.
This commit is contained in:
parent
e2126a1475
commit
f6235d4cfa
@ -1,3 +1,11 @@
|
||||
2005-11-03 Wu Zhou <woodzltc@cn.ibm.com>
|
||||
|
||||
Checked in by Elena Zannoni <ezannoni@redhat.com>
|
||||
|
||||
* dwarf2read.c (read_structure_type): Add IBM XL C++
|
||||
specific code to set TYPE_VPTR_FIELDNO and TYPE_VPTR_BASETYPE
|
||||
of a virtual class if a field named "__vfp" is found.
|
||||
|
||||
2005-11-03 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
Checked in by Elena Zannoni <ezannoni@redhat.com>
|
||||
|
@ -3855,6 +3855,28 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
TYPE_VPTR_FIELDNO (type) = TYPE_VPTR_FIELDNO (t);
|
||||
}
|
||||
}
|
||||
else if (cu->producer
|
||||
&& strncmp (cu->producer,
|
||||
"IBM(R) XL C/C++ Advanced Edition", 32) == 0)
|
||||
{
|
||||
/* The IBM XLC compiler does not provide direct indication
|
||||
of the containing type, but the vtable pointer is
|
||||
always named __vfp. */
|
||||
|
||||
int i;
|
||||
|
||||
for (i = TYPE_NFIELDS (type) - 1;
|
||||
i >= TYPE_N_BASECLASSES (type);
|
||||
--i)
|
||||
{
|
||||
if (strcmp (TYPE_FIELD_NAME (type, i), "__vfp") == 0)
|
||||
{
|
||||
TYPE_VPTR_FIELDNO (type) = i;
|
||||
TYPE_VPTR_BASETYPE (type) = type;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
do_cleanups (back_to);
|
||||
|
Loading…
Reference in New Issue
Block a user