https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127791
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2026-10-09
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
--- Comment #1 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
Machine_Overflows_On_Target is the underlying global setting for:
"S'Machine_Overflows
For every subtype S of a floating point type T:
Yields the value True if overflow and divide-by-zero are detected and reported
by raising Constraint_Error for every predefined operation that yields a result
of the type T; yields the value False otherwise."
which is formally defined for every floating-type (sub)type, but implemented
only as a global setting by GNAT.
The traditional interpretation in the IEEE context is that it also covers the
Invalid exception, but that's a detail. The main point is that the flag is
equivalent to declaring to the Ada implementation that alternate exception
handling in the IEEE sense is enabled (for Overflow, Divide-By-Zero and
Invalid) in the hardware and that the Ada implementation must map these
exceptions to the standard Constraint_Error language exception, which is
currently achieved by the combination -ftrapping-math + -fnon-call-exceptions.