On Wed, Aug 26, 2020 at 01:08:00PM +0200, Richard Biener via Gcc-patches wrote:
> You only need -fexceptions for that, then you can throw; from a signal handler
> for example.  If you want to be able to catch the exception somewhere up
> the call chain all intermediate code needs to be compiled so that unwinding
> from asynchronous events is possible - -fasynchronous-unwind-tables.
> 
> So -fasynchronous-unwind-tables is about unwinding.  -f[non-call]-exceptions
> is about throw/catch.  Clearly libgcc does neither throw nor catch but with
> async events we might need to unwind from inside it.

In C code -f{,non-call-}exceptions is also about whether cleanup attribute
will work or not.  But I think in libgcc we don't really use it, especially
not in the division/modulo code, not even indirectly from libc headers like
pthread_cleanup_* macros.

        Jakub

Reply via email to