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



  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