forked from M-Labs/artiq-zynq
Do not apply offsets to null pointers
This commit is contained in:
parent
63157588bb
commit
8b9bb38331
@ -85,7 +85,7 @@ unsafe fn get_ttype_entry(
|
|||||||
encoding | DW_EH_PE_pcrel,
|
encoding | DW_EH_PE_pcrel,
|
||||||
ttype_base,
|
ttype_base,
|
||||||
)
|
)
|
||||||
.map(|v| (v != ttype_base).then(|| v as *const u8))
|
.map(|v| (v != 0).then(|| v as *const u8))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub unsafe fn find_eh_action(
|
pub unsafe fn find_eh_action(
|
||||||
@ -275,6 +275,11 @@ unsafe fn read_encoded_pointer_with_base(reader: &mut DwarfReader, encoding: u8,
|
|||||||
_ => return Err(()),
|
_ => return Err(()),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if result == 0 {
|
||||||
|
// null is just encoded as 0, even if a relative encoding is used for the table.
|
||||||
|
return Ok(0);
|
||||||
|
}
|
||||||
|
|
||||||
result += if (encoding & 0x70) == DW_EH_PE_pcrel {
|
result += if (encoding & 0x70) == DW_EH_PE_pcrel {
|
||||||
original_ptr as usize
|
original_ptr as usize
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user