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