From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Concatenation and Characters
Date: Thu, 24 Oct 2002 00:33:31 GMT
Date: 2002-10-24T00:33:31+00:00 [thread overview]
Message-ID: <wccadl4ekv8.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 3DB6F7A3.5060302@acm.org
Jeffrey Carter <jrcarter@acm.org> writes:
> Robert A Duff wrote:
> > Not true. I wasn't thinking clearly. For the example given, you are
> > correct that a bounds check is needed, at least on the upper bound. I
> > suppose the compiler could optimize away the check on the lower bound.
>
> I would think even on the lower bound. The compiler knows nothing about
> the bounds. The lower bound could be any value in Positive, so a
> variable in Positive could easily be less than the lower bound just as
> it could be greater than the upper bound.
Yes, that's right.
> > In any case, although I put my foot in my mount about *that* example, I
^^^^^
I can't even spell "mouth" right. :-(
> > think my more general point is correct: there are cases where an Ada 83
> > compiler could optimize away checks (based on the erroneousness of
> > uninit vars), where an Ada 95 compiler cannot (or at least has to prove
> > more).
>
> If the variable has the same subtype as the index of the array object, I
> can see this:
>
> procedure Op (S : in out String) is
> I : Positive range S'range;
> begin -- Op
> S (I) := 'x';
> end Op;
>
> I is either in range or execution is erroneous.
Yes (in Ada 83).
> As I said in another post, a source of unexpected Constraint_Errors I
> encountered in Ada 83 was from beginners assuming the lower bound of a
> String parameter was one. A bounds check is required unless the index is
> known to the compiler to be in the index range of the array object.
>
> I guess String was not a good type to use for an example. If it had been
>
> type Index is range 1 .. 100;
> type Arr is array (Index) of Integer;
>
> I : Index;
> A : Arr
> ...
> A (I) := 1;
>
> it would have been more obvious what we're talking about (I think).
Yes. ;-)
- Bob
next prev parent reply other threads:[~2002-10-24 0:33 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-10-10 14:50 Concatenation and Characters Justin Birtwell
2002-10-10 14:55 ` Preben Randhol
2002-10-10 15:04 ` Justin Birtwell
2002-10-10 15:22 ` Preben Randhol
2002-10-10 15:30 ` Justin Birtwell
2002-10-10 16:05 ` Georg Bauhaus
2002-10-10 16:07 ` Preben Randhol
2002-10-10 17:45 ` Robert A Duff
2002-10-10 15:32 ` Justin Birtwell
2002-10-10 15:36 ` Preben Randhol
2002-10-10 16:44 ` Mark Biggar
2002-10-10 17:45 ` Stephen Leake
2002-10-10 21:53 ` Mark Biggar
2002-10-18 17:03 ` Programmer Dude
2002-10-18 18:13 ` Preben Randhol
2002-10-18 18:36 ` Wes Groleau
2002-10-21 15:16 ` Georg Bauhaus
2002-10-18 21:33 ` Mark Biggar
2002-10-20 2:01 ` Dmitry A.Kazakov
2002-10-21 14:13 ` Wes Groleau
2002-10-21 15:22 ` Dmitry A. Kazakov
2002-10-21 19:38 ` Georg Bauhaus
2002-10-22 22:15 ` Dmitry A.Kazakov
2002-10-22 12:05 ` Georg Bauhaus
2002-10-22 12:19 ` Lutz Donnerhacke
2002-10-22 14:43 ` Georg Bauhaus
2002-10-23 8:39 ` Dmitry A. Kazakov
2002-10-23 14:39 ` Georg Bauhaus
2002-10-24 8:18 ` Dmitry A. Kazakov
2002-10-21 16:50 ` Warren W. Gay VE3WWG
2002-10-21 15:20 ` Georg Bauhaus
2002-10-21 17:51 ` Programmer Dude
2002-10-21 18:48 ` Jim Rogers
2002-10-21 19:44 ` tmoran
2002-10-21 20:42 ` Programmer Dude
2002-10-22 1:42 ` Jeffrey Carter
2002-10-22 14:37 ` Robert A Duff
2002-10-22 18:51 ` Jeffrey Carter
2002-10-23 7:01 ` Pascal Obry
2002-10-22 14:45 ` Matthew Heaney
2002-10-22 18:47 ` Jeffrey Carter
2002-10-22 21:31 ` Robert A Duff
[not found] ` <3DB59D75.20609 <wccd6q29n3l.fsf@shell01.TheWorld.com>
2002-10-23 2:02 ` Jeffrey Carter
2002-10-23 13:16 ` Matthew Heaney
2002-10-23 19:11 ` Jeffrey Carter
2002-10-23 15:24 ` Robert A Duff
2002-10-23 19:24 ` Jeffrey Carter
2002-10-24 0:33 ` Robert A Duff [this message]
2002-10-22 3:46 ` Jim Rogers
2002-10-22 14:48 ` Robert A Duff
2002-10-22 15:02 ` Fraser Wilson
2002-10-22 15:38 ` David C. Hoos
2002-10-22 15:44 ` Fraser Wilson
2002-10-22 16:13 ` Robert A Duff
2002-10-23 8:58 ` Dmitry A. Kazakov
2002-10-23 9:08 ` Lutz Donnerhacke
2002-10-23 9:34 ` Dmitry A. Kazakov
2002-10-23 10:10 ` Lutz Donnerhacke
2002-10-23 17:15 ` Frank J. Lhota
2002-10-24 8:41 ` Dmitry A. Kazakov
2002-10-24 9:25 ` Fraser Wilson
2002-10-24 14:13 ` Matthew Heaney
[not found] ` <un <wcc7kgazc20.fsf@shell01.TheWorld.com>
2002-10-22 16:46 ` David C. Hoos
2002-10-22 8:51 ` Stuart Palin
2002-10-22 18:56 ` Programmer Dude
2002-10-21 19:42 ` Georg Bauhaus
-- strict thread matches above, loose matches on Subject: below --
2002-10-11 5:04 Grein, Christoph
2002-10-11 10:30 ` Preben Randhol
2002-10-23 5:15 Grein, Christoph
2002-10-23 13:19 ` Matthew Heaney
2002-10-24 5:53 Grein, Christoph
2002-10-24 14:04 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox