This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA patch] PR18749: epilogue not tracked in dwarf2 unwind-info


On Mon, Jun 12, 2006 at 10:07:40PM +0200, Michael Matz 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.

You need to have some compelling reason to emit the unwind info, because
doing so will bloat .eh_frame dramatically (*).  gcc doesn't support
asynchronous exceptions, shouldn't generate trapping instructions in
epilogues, and shouldn't allow trapping instructions from the body to
migrate into the epilogue.

*) You may have multiple copies of the epilogue.  You may have code from
the function body being placed after the function return.  It's not just
a matter of tracking the cfa adjustment in the epilogue;  A proper eh
description for unwinding through asynchronous exceptions needs to know
that saved regs are no longer valid on the stack.

-- 
Alan Modra
IBM OzLabs - Linux Technology Centre


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]