https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104356

--- Comment #11 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> So what does Ada do on targets like powerpc that do not raise an exception?
> From what I can see, 1 / 0 yields 0 there.

It generates an explicit check for division-by-zero in the general case (remove
the pragma Suppress (All_Checks) and you'll see it) but we do not rely on it
everywhere, only where system.ads contains:

   Backend_Divide_Checks : constant Boolean := False;

In other words, when Backend_Divide_Checks is set to True, we need the divide
and it needs to trap (and pragma Suppress (All_Checks) emulates that, but I
certainly need to add a dg-skip for PowerPC here).

Reply via email to