comp.lang.ada
 help / color / mirror / Atom feed
From: Jerry <lanceboyle@qwest.net>
Subject: Re: GNAT does not consistently raise an exception to log(0.0)
Date: Sat, 13 Jul 2013 20:44:28 -0700 (PDT)
Date: 2013-07-13T20:44:28-07:00	[thread overview]
Message-ID: <edd0a6be-d60d-441b-8668-557fbe9e3fd7@googlegroups.com> (raw)
In-Reply-To: <151a6f74-9100-49dc-8c0c-f656aed1d7ea@googlegroups.com>

On Saturday, July 13, 2013 2:37:20 AM UTC-7, AdaMagica wrote:
> 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.

Yes, as Simon has also shown with the generated code differences.
> 
> In the second version, you output an invalid value.
No--I only attempt to output an invalid value. The Put_Line is never executed because the exception is raised before that, at the log(0.0) level.

> See RM on allowed optimizations.

I suppose that would be 11.6(5):
http://www.adaic.org/resources/add_content/standards/12rm/html/RM-11-6.html

Jerry

  reply	other threads:[~2013-07-14  3:44 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
2013-07-14  3:44   ` Jerry [this message]
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