comp.lang.ada
 help / color / mirror / Atom feed
From: AdaMagica <christ-usch.grein@t-online.de>
Subject: Re: GNAT does not consistently raise an exception to log(0.0)
Date: Sat, 13 Jul 2013 02:37:20 -0700 (PDT)
Date: 2013-07-13T02:37:20-07:00	[thread overview]
Message-ID: <151a6f74-9100-49dc-8c0c-f656aed1d7ea@googlegroups.com> (raw)
In-Reply-To: <74c64a2c-f062-4b59-aafb-40c0bac39203@googlegroups.com>

On Saturday, July 13, 2013 2:52:08 AM UTC+2, Jerry wrote:
> with Ada.Numerics.Long_Elementary_Functions; 
> use  Ada.Numerics.Long_Elementary_Functions;
> procedure Bomb_Log is
>     x : Long_Float;
> begin
>     x := log(0.0);
> end Bomb_Log;
>
> However, under the same conditions as above, the following program raises the exception always:
>
> with Ada.Numerics.Long_Elementary_Functions; 
> use  Ada.Numerics.Long_Elementary_Functions;
> with Ada.Text_IO;
> use  Ada.Text_IO;
> procedure Bomb_Log is
>     x : Long_Float;
> begin
>     x := log(0.0);
>     Put_Line(Long_Float'Image(x));
> end Bomb_Log;

That's easy. In the first version, the compiler optimizes X away, since it's not used for any external effects.

In the second version, you output an invalid value.

See RM on allowed optimizations.

  parent reply	other threads:[~2013-07-13  9:37 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-13  0:52 GNAT does not consistently raise an exception to log(0.0) Jerry
2013-07-13  1:47 ` Anh Vo
2013-07-13  2:12   ` Jerry
2013-07-13  2:28     ` Anh Vo
2013-07-13  3:33       ` Jerry
2013-07-14  3:28       ` Jerry
2013-07-14 13:35         ` Anh Vo
2013-07-15  8:25           ` Jerry
2013-07-13  7:26 ` Dmitry A. Kazakov
2013-07-14  3:34   ` Jerry
2013-07-14  3:51   ` Jerry
2013-07-13  7:34 ` Simon Wright
2013-07-14  3:42   ` Jerry
2013-07-13  9:37 ` AdaMagica [this message]
2013-07-14  3:44   ` Jerry
2013-07-15 17:16     ` AdaMagica
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox