diff options
| author | KyleMiles <krm504@nyu.edu> | 2023-07-31 23:07:52 -0400 |
|---|---|---|
| committer | KyleMiles <krm504@nyu.edu> | 2023-07-31 23:07:52 -0400 |
| commit | 877436a87570d49bd4c694f2a8b45d9a1f9be989 (patch) | |
| tree | 60d262921bc03e017d7092cb301b80f762cddef1 /rust/examples/dwarf/dwarf_import/src/die_handlers.rs | |
| parent | 10d5bd9aed6122de4d096e78d116890e2ca439e0 (diff) | |
Dwarf import : Handle default address size for pointers better when the dwarf info doesn't specify it
Diffstat (limited to 'rust/examples/dwarf/dwarf_import/src/die_handlers.rs')
| -rw-r--r-- | rust/examples/dwarf/dwarf_import/src/die_handlers.rs | 19 |
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), + )) + } } } |
