> So it looks like some targets are at least optionally still using sjlj
> exceptions and would be affected by this change. AFAICT it only makes a
> difference with -fstack-check and would be a bugfix even for those
> targets - correct?

Yes, for example the 32-bit Windows compiler still uses SJLJ exceptions.

> Or is there something Ada-specific that makes it require more stack?

The history is as follows: -fstack-check was implemented for Ada (it's 
required by the language) and the `setjmp'/`longjmp'-based exception handling 
mechanism referred to in the doc is the SJLJ scheme of the Ada compiler.
This scheme is purely driven by the front-end (for example, -fexceptions is 
*not* set when it is in use) and the 75 words are sufficient with it.
This front-end SJLJ scheme has some annoying drawbacks/limitations so we are 
experimenting with the middle SJLJ scheme (-fexceptions set) and for it the 75 
words are definitely not sufficient; 4K/8K are required e.g. on Solaris.

> If it's not Ada-specific, the patch is ok if you also update the tm.texi
> documentation.

It's not Ada-specific in the sense that, if you want to raise an exception on 
a stack overflow in any language with the middle-end SJLJ scheme, the current 
setting is definitely not sufficient and you'll get a crash during unwinding.

-- 
Eric Botcazou

Reply via email to