From 35a7aa0b086c4f8c5de61740688a810090816a9b Mon Sep 17 00:00:00 2001 From: bdemsky Date: Tue, 13 Jul 2004 07:05:20 +0000 Subject: [PATCH] fixes to size computation. --- .../structextract/dumpstructures.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Repair/RepairCompiler/structextract/dumpstructures.c b/Repair/RepairCompiler/structextract/dumpstructures.c index e4b015f..bfcc596 100755 --- a/Repair/RepairCompiler/structextract/dumpstructures.c +++ b/Repair/RepairCompiler/structextract/dumpstructures.c @@ -249,6 +249,12 @@ int getsize(dwarf_entry *type) { } return size*getsize(modifier_ptr->target_ptr); } + case DW_TAG_const_type: + { + consttype * ctype_ptr=(consttype*)type->entry_ptr; + return getsize(ctype_ptr->target_ptr); + } + break; case DW_TAG_base_type: { base_type *base=(base_type*)type->entry_ptr; return base->byte_size; @@ -256,10 +262,21 @@ int getsize(dwarf_entry *type) { case DW_TAG_pointer_type: { return 4; } + case DW_TAG_union_type: case DW_TAG_structure_type: { collection_type *ctype=(collection_type*)type->entry_ptr; return ctype->byte_size; } + case DW_TAG_subroutine_type: { + return 4; + } + case DW_TAG_typedef: + { + tdef * tdef_ptr=(tdef*)type->entry_ptr; + return getsize(tdef_ptr->target_ptr); + } + break; + default: return 0; } -- 2.34.1