comp.lang.ada
 help / color / mirror / Atom feed
From: Preben Randhol <randhol+abuse@pvv.org>
Subject: Re: Optimizing Boundary Checks
Date: Fri, 13 Jun 2003 13:56:01 +0000 (UTC)
Date: 2003-06-13T13:56:01+00:00	[thread overview]
Message-ID: <slrnbejlup.5eu.randhol+abuse@kiuk0152.chembio.ntnu.no> (raw)
In-Reply-To: bccjju$hs492$2@ID-175126.news.dfncis.de

Vinzent Hoefler wrote:
> 
> But if you'd like to try
> 
>|i : Integer;
>| ...
>|i := 11;
>|Boxes (i) := 1;
> 
> instead, then I guess, there will be no warning, because at the time
> the code is compiled, "i" will *not* be replaced by the constant 11
> and the actual value of "i" is probably already out of scope for the
> compiler (highly depends on the implementation, I think). Although,
> any optimizing stage later probably still only generates a call to the
> exception handler if it is smart enough. If it is not, then there must
> be a range check here because

So to sum up:

If I had done:

   subtype Index_Range is Integer range 1 .. 10;
   type Items is array (Index_Range) of Natural;

   Boxes : Items;
   Index : Integer := 11;
begin

   Boxes (Index) := 1;

then I get an constraint error at run-time as the compiler will accept
the code. And in this case range checks on the array must be on. If I
change to:

   type Index_Range is range 1 .. 10;

Then the range checks on the array *can* be switched off as the range
checks of Index_Range will do.

Is this right?

I'm asking because there was an post some days ago saying that my
example above could have range checks on the array off IIRC and that
puzzels me.

Preben
-- 
Preben Randhol                    http://www.pvv.org/~randhol/



  reply	other threads:[~2003-06-13 13:56 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-13 11:49 Optimizing Boundary Checks Preben Randhol
2003-06-13 12:03 ` Erlo Haugen
2003-06-13 12:38   ` Vinzent Hoefler
2003-06-13 12:47     ` Preben Randhol
2003-06-13 13:28       ` Vinzent Hoefler
2003-06-13 12:42   ` Preben Randhol
2003-06-13 12:48     ` Preben Randhol
2003-06-13 13:28       ` Vinzent Hoefler
2003-06-13 13:56         ` Preben Randhol [this message]
2003-06-13 14:42           ` Vinzent Hoefler
2003-06-13 15:25             ` Preben Randhol
2003-06-13 15:34               ` Vinzent Hoefler
2003-06-14 10:45                 ` Preben Randhol
2003-06-14 14:59                   ` James Rogers
2003-06-13 13:33       ` Peter Amey
2003-06-13 13:34 ` Martin Dowie
2003-06-13 13:48   ` Vinzent Hoefler
2003-06-13 14:37     ` Martin Dowie
2003-06-13 15:12       ` Vinzent Hoefler
2003-06-14  2:01         ` Jeffrey Carter
2003-06-16 11:23           ` Vinzent Hoefler
2003-06-14  8:34         ` Dmitry A. Kazakov
2003-06-14 17:20         ` Robert I. Eachus
2003-06-16 11:23           ` Vinzent Hoefler
2003-06-18 20:58             ` Brian Gaffney
2003-06-13 13:45 ` Dale Stanbrough
replies disabled

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