This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: BUG? -fomit-frame-pointer and exceptions or setjmp/longjmp
On Fri, 14 Jun 2002, Denis Zaitsev said:
> On Mon, Jun 10, 2002 at 09:48:28PM +0100, Nix wrote:
>> ...
>> As the trace shows, this crash occurs during unwinding, the presence or
>> absence of a catch is irrelevant. I'm rather wondering why we're hitting
>> MD_FALLBACK_FRAME_STATE_FOR at all: perhaps there's a problem in FDE
>> generation or something.
>
> Exact, uw_update_context_1 calculates bad context->cfa, if it works
> for a function with the frame pointer omited. Now I'm looking what
> follows...
Ah, so it was `working' beforehand only because the fallback function
was recovering from the FDE unwinder's[1] errors?
Why is there a fallback function at all? It doesn't work when fairly
common switches are used, so its usefulness is limited, at best (bit of
a shame the if-of-opcodes hack in the i386 variant is choosing to diff
against the frame pointer, but there's not much else to show where a
function starts, I guess...)
[1] or the FDE frame-location emitter, or something like that
--
`What happened?'
`Nick shipped buggy code!'
`Oh, no dinner for him...'