|
From: <sv...@va...> - 2008-08-28 10:27:46
|
Author: sewardj
Date: 2008-08-28 11:27:54 +0100 (Thu, 28 Aug 2008)
New Revision: 8556
Log:
Merge (from trunk r8534) (minimal changes needed to handle Dwarf3
var/type info produced by gcc-4.3.x).
Modified:
branches/SGCHECK/coregrind/m_debuginfo/readdwarf3.c
Modified: branches/SGCHECK/coregrind/m_debuginfo/readdwarf3.c
===================================================================
--- branches/SGCHECK/coregrind/m_debuginfo/readdwarf3.c 2008-08-28 10:26:40 UTC (rev 8555)
+++ branches/SGCHECK/coregrind/m_debuginfo/readdwarf3.c 2008-08-28 10:27:54 UTC (rev 8556)
@@ -2195,7 +2195,11 @@
goto acquire_Atom;
}
- if (dtag == DW_TAG_structure_type || dtag == DW_TAG_union_type) {
+ /* Treat DW_TAG_class_type as if it was a DW_TAG_structure_type. I
+ don't know if this is correct, but it at least makes this reader
+ usable for gcc-4.3 produced Dwarf3. */
+ if (dtag == DW_TAG_structure_type || dtag == DW_TAG_class_type
+ || dtag == DW_TAG_union_type) {
Bool have_szB = False;
Bool is_decl = False;
Bool is_spec = False;
@@ -2207,7 +2211,8 @@
= VG_(newXA)( ML_(dinfo_zalloc), ML_(dinfo_free),
sizeof(TyAtom*) );
type->Ty.StOrUn.complete = True;
- type->Ty.StOrUn.isStruct = dtag == DW_TAG_structure_type;
+ type->Ty.StOrUn.isStruct = dtag == DW_TAG_structure_type
+ || dtag == DW_TAG_class_type;
while (True) {
DW_AT attr = (DW_AT) get_ULEB128( c_abbv );
DW_FORM form = (DW_FORM)get_ULEB128( c_abbv );
|