comp.lang.ada
 help / color / mirror / Atom feed
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



  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