account for enum size in dwarf dump (#110)

This commit is contained in:
Vi 2025-08-30 12:03:48 -05:00 committed by GitHub
parent b56b399201
commit d3596dbaa4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2142,11 +2142,18 @@ fn process_enumeration_tag(info: &DwarfInfo, tag: &Tag) -> Result<EnumerationTyp
(AttributeKind::ElementList, AttributeValue::Block(data)) => {
let mut cursor = Cursor::new(data);
while cursor.position() < data.len() as u64 {
let value = i32::from_reader(&mut cursor, info.e)?;
let value = match byte_size {
Some(1) => Some(i8::from_reader(&mut cursor, info.e)? as i32),
Some(2) => Some(i16::from_reader(&mut cursor, info.e)? as i32),
Some(4) => Some(i32::from_reader(&mut cursor, info.e)?),
_ => None,
};
let name = read_string(&mut cursor)?;
if let Some(value) = value {
members.push(EnumerationMember { name, value });
}
}
}
(AttributeKind::Member, &AttributeValue::Reference(_key)) => {
// Pointer to parent structure, ignore
}