Fixes for the following:
* Instruction decoding bugs revealed by the test suite
* dwarf_attr memory leak
* improper handling of malformed DWARF: high_pc can return an error even
when it's supposedly present, and the associated Dwarf_Error needs to be
freed
* Windows-specific misuse of temporary strings, resulting in memory
corruption in our calling convention analysis
* Slicing no longer attempts to follow catch edges
* Exception block parsing properly handles the aligned tag
* Exception block parsing properly recognizes that zero offsets
correspond to "no catch block" regardless of the presence/absence of a base
* Exception block parsing correctly handles bases other than function
entry, if present
* Exception block parsing now ignores indirect catch blocks; these
contain pointers to catch blocks and should be assumed not to be
statically resolvable.
* Exception table size decoding now matches glibc internals.
All of these are on the 9.1.x branch; in the absence of any further
showstoppers, this will become 9.1.0. If there is demand for a 9.0.4
incorporating the various bug fixes and leaving out the ABI breakers,
let me know and I can package it; if not, folks can just use 9.1.
--bw
|