From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: What is the warning about builtin-function on gcc-4.6.0 ?
Date: Sat, 26 Mar 2011 21:08:56 -0500
Date: 2011-03-26T21:08:56-05:00 [thread overview]
Message-ID: <imm67s$49s$1@munin.nbi.dk> (raw)
In-Reply-To: 8762r5hl2u.fsf@mid.deneb.enyo.de
"Florian Weimer" <fw@deneb.enyo.de> wrote in message
news:8762r5hl2u.fsf@mid.deneb.enyo.de...
...
>> If the compiler doesn't raise an exception on division by zero (it's
>> allowed not to, and GNAT doesn't) it will (in this case) set the result
>> to +Inf, and 'Valid will return False.
>
> My understanding is that an implementation must either raise
> Constraint_Error, or the evaluation of an expression must result in a
> valid value.
Your understanding is wrong.
The only real requirement on Ada math is that the resulting values are not
used in a way that causes erroneous execution (and there is even an explicit
hole allowing that for Unchecked_Conversion). Otherwise, using/producing an
"invalid value" is allowed in almost all contexts -- but it is a bounded
error so a compiler can raise an exception if it wants.
Also note that "abnormal" is something different from "invalid" (only scalar
objects can be invalid).
Data validity is a very complex subject; you can read 13.9.1 10 times and
get different impressions each time. Reading the e-mail on the various AIs
on the topic (AI05-0195-1 is the most recent) and the AARM *might* help --
or might confuse further. On top of that, different implementations use
different models to ensure validity without inserting more checks than
necessary.
Randy.
next prev parent reply other threads:[~2011-03-27 2:08 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-26 6:32 What is the warning about builtin-function on gcc-4.6.0 ? ytomino
2011-03-26 8:45 ` Florian Weimer
2011-03-26 9:13 ` ytomino
2011-03-26 9:43 ` Florian Weimer
2011-03-26 10:07 ` ytomino
2011-03-26 10:24 ` Florian Weimer
2011-03-26 15:14 ` Dmitry A. Kazakov
2011-03-26 21:36 ` ytomino
2011-03-27 9:50 ` Dmitry A. Kazakov
2011-03-26 14:50 ` Simon Wright
2011-03-26 15:50 ` Florian Weimer
2011-03-26 16:32 ` Simon Wright
2011-03-26 17:02 ` Florian Weimer
2011-03-26 17:48 ` Simon Wright
2011-03-26 18:48 ` Florian Weimer
2011-03-27 2:08 ` Randy Brukardt [this message]
2011-03-27 8:37 ` Florian Weimer
2011-03-27 16:41 ` Robert A Duff
2011-03-27 17:21 ` Florian Weimer
2011-03-27 17:56 ` Robert A Duff
2011-03-27 16:51 ` Robert A Duff
2011-03-27 17:05 ` Florian Weimer
2011-03-27 17:14 ` Robert A Duff
2011-03-29 2:20 ` Randy Brukardt
2011-03-29 18:35 ` Robert A Duff
2011-03-29 23:35 ` Randy Brukardt
2011-03-30 1:02 ` Adam Beneschan
2011-03-30 12:57 ` Robert A Duff
2011-03-30 14:41 ` Adam Beneschan
2011-03-30 18:39 ` Robert A Duff
2011-03-30 19:28 ` Randy Brukardt
2011-03-26 21:58 ` ytomino
2011-03-26 22:00 ` Florian Weimer
2011-03-26 22:22 ` anon
2011-03-26 22:36 ` ytomino
2011-03-27 12:00 ` anon
2011-03-27 18:50 ` ytomino
2011-03-27 23:35 ` anon
2011-03-27 23:42 ` anon
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox