Hans-Peter Nilsson <h...@bitrange.com> writes:

> On Fri, 3 Apr 2009, Ian Lance Taylor wrote:
>> gcc's -fasynchronous-unwind-tables option is
>> intended to support unwinding the stack at any precise instruction
>> boundary, which might be adequate for this purpose if the OS can handle
>> the adjustment from an exception in the middle of an instruction to an
>> exception after the previous instruction is complete.  Unfortunately,
>> -fasynchronous-unwind-tables doesn't work; unwinding the stack during a
>> function epilogue is not handled correctly.
>
> FWIW, that's what I've once thought, but different GCC people
> have different opinions on the extent of exceptions that
> -fasynchronous-unwind-tables can and should enable.  For example
> some Richards exclude prologue and epilogue and/or stack-slot
> accesses.
>
> Just pointing out that there's no consensus on what's a bug and
> what's a reasonable limitation of -fasynchronous-unwind-tables.
> I'm not sure there is consensus among the GNAT people either.

Could be, but the documentation of -fasynchronous-unwind-tables clearly
implies that it should work during a function epilogue, and there are
reasonable uses which require it to work during a function epilogue
(e.g., a profil based signal handler which captures stack backtraces).
I'm perfectly happy to have both -fasynchronous-unwind-tables and
-fincomplete-ascyhronous-unwind-tables.

Ian

Reply via email to