On Thu, Jul 27, 2017 at 3:50 PM, H.J. Lu <hongjiu...@intel.com> wrote:
> execute_dwarf2_frame is called for each funtion.  But create_cie_data
> is called only once to initialize cie_cfi_row for all functions.  Since
> INCOMING_FRAME_SP_OFFSET may be different for each function, we can't
> use the same INCOMING_FRAME_SP_OFFSET in cie_cfi_row for all functions.
> This patch sets cie_cfi_row->cfa.offset to INCOMING_FRAME_SP_OFFSET in
> create_pseudo_cfg which is called for each function.
>
> Tested on x86-64.  OK for trunk?

This looks wrong.  cie_cfi_row is the state produced by the
instructions in the CIE, which don't vary between functions.  If
INCOMING_FRAME_SP_OFFSET varies, we need to add actual FDE
instructions to reflect that, not just clobber our current model of
what the CIE means.

Jason

Reply via email to