This is the mail archive of the
mailing list for the GCC project.
Re: [RFA patch] PR18749: epilogue not tracked in dwarf2 unwind-info
On Mon, 12 Jun 2006, Daniel Jacobowitz wrote:
> > I'm trying to fix PR18749, which is about the fact that dwarf2out.c
> > doesn't look at epilogues at all, which makes the CFA be wrong during the
> > epilogue, as no adjustments there (like pops, or additions to the stack
> > pointer) are tracked.
> Just FYI, there's also:
Whoops. Thanks for the pointer.
> > For 1) I chose to only support jump-less epilogues. That means I can
> > simply save the whole state before the epilogue, and restore it completely
> > afterwards. (I did not look into using
> > DW_CFA_remember_state/restore_state)
> From reading your patch, I'd be worried about scheduling; you don't
> know if something affecting unwind data has been scheduled into the
> epilogue you're restoring after.
But as I make sure, that you can't leave the epilogue, other than
returning from the function, this changed state (which is unequal to the
state right before the epilogue) can't be relied upon anywhere after the
epilogue. Program flow simply couldn't go over this intermediate
non-epilogue insn without leaving the function.
(Note that I restore the state only at the next barrier after the