comp.lang.ada
 help / color / mirror / Atom feed
From: "Adam Beneschan" <adam@irvine.com>
Subject: Re: Unsigned Integer Restraint Errors
Date: 12 Mar 2007 10:23:39 -0700
Date: 2007-03-12T10:23:39-07:00	[thread overview]
Message-ID: <1173720219.194301.327140@c51g2000cwc.googlegroups.com> (raw)
In-Reply-To: <1173712032.183064.264340@8g2000cwh.googlegroups.com>

On Mar 12, 8:07 am, "frikk" <frik...@gmail.com> wrote:

> LASTLY:
> Please note that when I change the range value from 0 .. 5 to 0 ..
> 2**64-1, or 0 .. UNSIGNED_LONG_INT'Last, there is no constraint error
> raised. This is the same behavior as the first example.

I missed this question the first time.

The reason for this is probably that special things are needed to do
this sort of check.  When you declare a subtype in the range 0 .. 5,
the code generated by the compiler can do its normal arithmetic
operations, and then check to see if the result is less than 0 or
greater than 5.  But when you declare a subtype in the range
0..2**64-1, the code can't do this, because *all* 64-bit integers are
going to appear to be in this range.  In order to do the check, either
the compiler will need to generate additional special code, or it will
need to do something to enable the processor's hardware overflow
mechanism.  On GNAT and some other compilers, this requires that you
use a special flag when compiling.  This might be -gnato, but I don't
remember offhand, and I'm hoping someone else will tell us what it is
so that I don't have to look it up myself.

                                  -- Adam




  parent reply	other threads:[~2007-03-12 17:23 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-12 15:07 Unsigned Integer Restraint Errors frikk
2007-03-12 16:27 ` Georg Bauhaus
2007-03-12 17:17 ` Adam Beneschan
2007-03-12 17:23 ` Adam Beneschan [this message]
2007-03-12 18:11   ` frikk
2007-03-12 20:00     ` frikk
2007-03-12 20:07       ` Adam Beneschan
2007-03-12 18:00 ` Dmitry A. Kazakov
2007-03-12 19:00   ` Martin Krischik
2007-03-12 21:13     ` Dmitry A. Kazakov
2007-03-12 19:13   ` frikk
2007-03-12 19:22     ` Randy Brukardt
2007-03-13  3:13       ` Jeffrey R. Carter
2007-03-13  3:00         ` Randy Brukardt
2007-03-13 12:09           ` frikk
2007-03-13 14:58             ` frikk
2007-03-13 15:31               ` frikk
2007-03-13 15:59                 ` Robert A Duff
2007-03-13 16:18                 ` Dmitry A. Kazakov
2007-03-13 16:21                 ` Jeffrey R. Carter
2007-03-13 16:04               ` Adam Beneschan
2007-03-13 16:41                 ` Adam Beneschan
2007-03-13 16:42                   ` Adam Beneschan
2007-03-14 14:06                     ` frikk
2007-03-13 17:23                 ` Dmitry A. Kazakov
2007-03-13 17:31                   ` Adam Beneschan
2007-03-14  0:54                   ` Jeffrey R. Carter
2007-03-16 13:38                   ` frikk
2007-03-13 16:16           ` Jeffrey R. Carter
2007-03-12 21:04     ` Dmitry A. Kazakov
replies disabled

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