Skip to content

Commit f1a688a

Browse files
committed
[DWARF Import] Use proper address width for unknown architectures
1 parent 759f0eb commit f1a688a

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

  • plugins/dwarf/dwarf_import/src

plugins/dwarf/dwarf_import/src/lib.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -516,9 +516,12 @@ fn parse_range_data_offsets(file: &object::File) -> Result<IntervalMap<u64, i64>
516516
eh_frame.set_vendor(gimli::Vendor::AArch64);
517517
}
518518

519-
if let Some(address_size) = file.architecture().address_size() {
520-
eh_frame.set_address_size(address_size.bytes());
521-
}
519+
let address_size = file
520+
.architecture()
521+
.address_size()
522+
.map(|s| s.bytes())
523+
.unwrap_or(if file.is_64() { 8 } else { 4 });
524+
eh_frame.set_address_size(address_size);
522525

523526
parse_unwind_section(&file, eh_frame).map_err(|e| format!("Error parsing .eh_frame: {}", e))
524527
} else if file.section_by_name(".debug_frame").is_some() {
@@ -529,9 +532,13 @@ fn parse_range_data_offsets(file: &object::File) -> Result<IntervalMap<u64, i64>
529532
debug_frame.set_vendor(gimli::Vendor::AArch64);
530533
}
531534

532-
if let Some(address_size) = file.architecture().address_size() {
533-
debug_frame.set_address_size(address_size.bytes());
534-
}
535+
let address_size = file
536+
.architecture()
537+
.address_size()
538+
.map(|s| s.bytes())
539+
.unwrap_or(if file.is_64() { 8 } else { 4 });
540+
debug_frame.set_address_size(address_size);
541+
535542
parse_unwind_section(&file, debug_frame)
536543
.map_err(|e| format!("Error parsing .debug_frame: {}", e))
537544
} else {

0 commit comments

Comments
 (0)