From: bdemsky Date: Tue, 13 Jul 2004 07:05:20 +0000 (+0000) Subject: fixes to size computation. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=35a7aa0b086c4f8c5de61740688a810090816a9b;p=repair.git fixes to size computation. --- 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; }