On Sun, 2013-10-06 at 17:25 +0200, Mark Wielaard wrote: > Register rules using expressions are stored using an offset from the > start of the .eh_frame or .debug_frame ELF section data. Since abi_cfi > rules aren't stored in those ELF sections they should use neither > DW_CFA_expression nor DW_CFA_val_expression. The only backend that used > DW_CFA_val_expression was ppc_cfi.c. It was easier to express the same > rule using DW_CFA_val_offset than to change the code to handle register > rules using expressions. On most architectures this did work by accident. > See the definition of struct dwarf_frame_register value in libdw/cfi.h to > see why. But on ia64 the abi_cfi data and actual frame data were placed > too far apart and caused a crash in tests/run-addrcfi.sh for ppc32.
I pushed this to master with Petr's suggested comment fixes.
