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.rs21
1 files changed, 11 insertions, 10 deletions
diff --git a/rust/examples/dwarf/dwarf_import/src/die_handlers.rs b/rust/examples/dwarf/dwarf_import/src/die_handlers.rs
index 24ef30fb..e6530dd2 100644
--- a/rust/examples/dwarf/dwarf_import/src/die_handlers.rs
+++ b/rust/examples/dwarf/dwarf_import/src/die_handlers.rs
@@ -108,16 +108,17 @@ pub(crate) fn handle_enum<R: Reader<Offset = usize>>(
while let Ok(Some(child)) = children.next() {
if child.entry().tag() == constants::DW_TAG_enumerator {
let name = debug_info_builder_context.get_name(unit, child.entry())?;
- let value = get_attr_as_u64(
- &child
- .entry()
- .attr(constants::DW_AT_const_value)
- .unwrap()
- .unwrap(),
- )
- .unwrap();
-
- enumeration_builder.insert(name, value);
+ let attr = &child
+ .entry()
+ .attr(constants::DW_AT_const_value)
+ .unwrap()
+ .unwrap();
+ if let Some(value) = get_attr_as_u64(attr) {
+ enumeration_builder.insert(name, value);
+ } else {
+ log::error!("Unhandled enum member value type - please report this");
+ return None;
+ }
}
}