misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions for the runtime on platforms where...

* gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions
	for the runtime on platforms where System.Machine_Overflow is true.

From-SVN: r266057
This commit is contained in:
Eric Botcazou 2018-11-13 09:02:33 +00:00 committed by Eric Botcazou
parent 0c1e0d63fe
commit 77ece7f52e
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2018-11-13 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/misc.c (gnat_init_gcc_eh): Set -fnon-call-exceptions
for the runtime on platforms where System.Machine_Overflow is true.
2018-11-08 Eric Botcazou <ebotcazou@adacore.com>
* fe.h (Suppress_Checks): Declare.

View File

@ -405,10 +405,15 @@ gnat_init_gcc_eh (void)
as permitted in Ada.
Turn off -faggressive-loop-optimizations because it may optimize away
out-of-bound array accesses that we want to be able to catch.
If checks are disabled, we use the same settings as the C++ compiler. */
If checks are disabled, we use the same settings as the C++ compiler,
except for the runtime on platforms where S'Machine_Overflow is true
because the runtime depends on FP (hardware) checks being properly
handled despite being compiled in -gnatp mode. */
flag_exceptions = 1;
flag_delete_dead_exceptions = 1;
if (!Suppress_Checks)
if (Suppress_Checks)
flag_non_call_exceptions = Machine_Overflows_On_Target && GNAT_Mode;
else
{
flag_non_call_exceptions = 1;
flag_aggressive_loop_optimizations = 0;