Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-10 Thread Eric Botcazou
> After verification, you are right: the problem is older but requires the > compiler to be configured with --enable-checking=yes. Thanks for confirming. The problem is present on x86-64/Linux too, I'll have a quick look later today. -- Eric Botcazou

Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-10 Thread Dominique d'Humières
> Le 10 oct. 2017 à 11:53, Eric Botcazou a écrit : > >> This cause >> >> % /opt/gcc/gcc8w/bin/g++ -std=c++11 -O2 -fnon-call-exceptions >> /opt/gcc/work/gcc/testsuite/g++.dg/pr62079.C -c -m32 >> /opt/gcc/work/gcc/testsuite/g++.dg/pr62079.C: In function 'int main()': >> /opt/gcc/work/gcc/testsuit

Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-10 Thread Eric Botcazou
> This cause > > % /opt/gcc/gcc8w/bin/g++ -std=c++11 -O2 -fnon-call-exceptions > /opt/gcc/work/gcc/testsuite/g++.dg/pr62079.C -c -m32 > /opt/gcc/work/gcc/testsuite/g++.dg/pr62079.C: In function 'int main()': > /opt/gcc/work/gcc/testsuite/g++.dg/pr62079.C:78:1: error: non-cold basic > block 5 reach

Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-10 Thread Dominique d'Humières
> The attached patch replaces it with an ad-hoc definition of setjmp, … This cause % /opt/gcc/gcc8w/bin/g++ -std=c++11 -O2 -fnon-call-exceptions /opt/gcc/work/gcc/testsuite/g++.dg/pr62079.C -c -m32 /opt/gcc/work/gcc/testsuite/g++.dg/pr62079.C: In function 'int main()': /opt/gcc/work/gcc/testsuit

Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-09 Thread Eric Botcazou
> You're right, not clear why I didn't spot it on Aarch64. Hunk reverted. The attached patch replaces it with an ad-hoc definition of setjmp, like the ones used for the coverage routines. Tested on Aarch64/Linux with and without --enable-sjlj-exceptions and on IA-64/Linux without --enable-sjlj

Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-08 Thread Joseph Myers
On Sun, 8 Oct 2017, Andreas Schwab wrote: > On Okt 08 2017, Eric Botcazou wrote: > > > * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead > > of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined. > > This breaks gcc.dg/plugin/must-tail-call-2.c, gcc.dg/torture/pr81083.

Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-08 Thread Eric Botcazou
> This also breaks gcc.c-torture/compile/951222-1.c: > > during GIMPLE pass: lower > /opt/gcc/gcc-20171008/gcc/testsuite/gcc.c-torture/compile/951222-1.c:4:1: > internal compiler error: in gimple_call_arg, at gimple.h:3159 0x118ab1b > gimple_call_arg You're right, not clear why I didn't spot it o

Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-08 Thread Andreas Schwab
On Okt 08 2017, Eric Botcazou wrote: > * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead > of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined. > * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is > defined, force the creation of a new

Re: Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-08 Thread Andreas Schwab
On Okt 08 2017, Eric Botcazou wrote: > * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead > of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined. This breaks gcc.dg/plugin/must-tail-call-2.c, gcc.dg/torture/pr81083.c and gcc.dg/torture/pr82264.c: warning: conflicti

Restore functional DONT_USE_BUILTIN_SETJMP support

2017-10-07 Thread Eric Botcazou
DONT_USE_BUILTIN_SETJMP is an old configuration macro that instructs the compiler to use the usual setjmp/longjmp routines instead of their built-in variants to implement SJLJ exceptions. It's less efficient but, sometimes, the setjmp/longjmp routines have specific features that cannot be easil