summaryrefslogtreecommitdiff
path: root/rust/examples/dwarf/dwarf_import/src/die_handlers.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/examples/dwarf/dwarf_import/src/die_handlers.rs')
-rw-r--r--rust/examples/dwarf/dwarf_import/src/die_handlers.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/rust/examples/dwarf/dwarf_import/src/die_handlers.rs b/rust/examples/dwarf/dwarf_import/src/die_handlers.rs
index bc7624b3..5563b2a5 100644
--- a/rust/examples/dwarf/dwarf_import/src/die_handlers.rs
+++ b/rust/examples/dwarf/dwarf_import/src/die_handlers.rs
@@ -200,7 +200,24 @@ pub fn handle_pointer<R: Reader<Offset = usize>>(
))
}
} else {
- None
+ if let Some(entry_type_offset) = entry_type {
+ let parent_type = debug_info_builder.get_type(entry_type_offset).unwrap().1;
+ Some(Type::pointer_of_width(
+ parent_type.as_ref(),
+ debug_info_builder.default_address_size(),
+ false,
+ false,
+ Some(reference_type),
+ ))
+ } else {
+ Some(Type::pointer_of_width(
+ Type::void().as_ref(),
+ debug_info_builder.default_address_size(),
+ false,
+ false,
+ Some(reference_type),
+ ))
+ }
}
}