projects
/
repair.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f5eae08
)
fixes to size computation.
author
bdemsky
<bdemsky>
Tue, 13 Jul 2004 07:05:20 +0000
(07:05 +0000)
committer
bdemsky
<bdemsky>
Tue, 13 Jul 2004 07:05:20 +0000
(07:05 +0000)
Repair/RepairCompiler/structextract/dumpstructures.c
patch
|
blob
|
history
diff --git
a/Repair/RepairCompiler/structextract/dumpstructures.c
b/Repair/RepairCompiler/structextract/dumpstructures.c
index e4b015f6b9a609514d9d2c8f6da0a19ada3e7cb1..bfcc596365af9a711489a4611466d46a55cd6c09 100755
(executable)
--- 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);
}
}
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;
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_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_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;
}
default:
return 0;
}