From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: CONSTRAINT_ERROR - why?
Date: Sun, 15 Dec 2002 19:04:38 GMT
Date: 2002-12-15T19:04:38+00:00 [thread overview]
Message-ID: <wccfzszp0hl.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 3DFC878D.B6966C37@t-online.de
Alfred Hilscher <Alfred.Hilscher@t-online.de> writes:
> Dennis Lee Bieber schrieb:
> >
> > From the user guide:
> >
> > -gnato
> > Enables overflow checking for integer operations. This causes GNAT
> > to generate slower and larger executable programs by adding code to
> > check for overflow (resulting in raising Constraint_Error as required
> > by standard Ada semantics). These overflow checks correspond to
> > situations in which the true value of the result of an operation may be
>
> "... the result of an operation ..." The result of the operation "/"
> _does_ fit into a BYTE.
The Constraint_Error comes from the implicit conversion from universal
integer to BYTE, which happens to the *operands* of "/". It's got
nothing to do with the "/" itself.
It's a Range_Check, by the way, not an Overflow_Check. I don't know if
the -gnato switch understands that.
The relevant RM paragraph is 4.6(28). It is a mistake, in my opinion
(although I didn't realize it at the time). All the other operations on
modular types wrap around -- clearly type conversion should work the
same way. (Randy will say that *none* of the operations should wrap
around, and I could go along with that, too. But have one "gotcha"
operation work differently from all the rest is poor language design.)
> > outside the base range of the result type. The following example shows
> > the distinction:
- Bob
next prev parent reply other threads:[~2002-12-15 19:04 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-14 18:28 CONSTRAINT_ERROR - why? Alfred Hilscher
2002-12-14 18:45 ` James S. Rogers
2002-12-14 19:15 ` Robert A Duff
2002-12-14 19:20 ` James S. Rogers
2002-12-14 19:42 ` Alfred Hilscher
2002-12-16 2:39 ` AG
2002-12-14 19:20 ` Alfred Hilscher
2002-12-14 20:58 ` Dennis Lee Bieber
2002-12-15 13:45 ` Alfred Hilscher
2002-12-15 19:04 ` Robert A Duff [this message]
2002-12-16 1:12 ` Dennis Lee Bieber
2002-12-16 2:20 ` Jeffrey Carter
2002-12-16 18:48 ` Alfred Hilscher
2002-12-16 19:53 ` James S. Rogers
2002-12-17 18:20 ` Alfred Hilscher
2002-12-17 19:29 ` Robert A Duff
2002-12-17 21:05 ` Dennis Lee Bieber
2002-12-18 18:36 ` Alfred Hilscher
2002-12-18 18:51 ` Robert A Duff
2002-12-18 21:45 ` Randy Brukardt
2002-12-19 16:49 ` Robert Spooner
2002-12-19 20:57 ` Randy Brukardt
2002-12-14 20:19 ` Jeffrey Carter
2002-12-14 22:26 ` Alfred Hilscher
2002-12-15 0:49 ` Dennis Lee Bieber
2002-12-15 2:18 ` Jeffrey Carter
2002-12-15 18:23 ` Jeffrey Carter
2002-12-15 14:01 ` Alfred Hilscher
2002-12-15 18:20 ` Jeffrey Carter
2002-12-15 19:00 ` Alfred Hilscher
2002-12-16 1:16 ` Dennis Lee Bieber
2002-12-16 18:50 ` Alfred Hilscher
2002-12-17 2:17 ` Dennis Lee Bieber
2002-12-17 18:21 ` Alfred Hilscher
[not found] ` <26tuvu4ekeigls0bnd2okavrdhfu0tir4a@4ax.com>
2002-12-18 18:47 ` Alfred Hilscher
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox