comp.lang.ada
 help / color / mirror / Atom feed
From: Jere <jhb.chat@gmail.com>
Subject: Re: Visibility of Indexing aspects
Date: Sun, 15 Jul 2018 08:33:02 -0700 (PDT)
Date: 2018-07-15T08:33:02-07:00	[thread overview]
Message-ID: <b1e463c1-b715-49d4-8649-506b1a2bc265@googlegroups.com> (raw)
In-Reply-To: <34f499f7-020f-4dcc-adad-0ab1113386d1@googlegroups.com>

On Sunday, July 15, 2018 at 10:41:50 AM UTC-4, AdaMagica wrote:
> Am Samstag, 14. Juli 2018 16:18:38 UTC+2 schrieb Jere:
> > Reference example compiled in GCC 8.1:
> > 
> > with Ada.Text_IO; use Ada.Text_IO;
> > 
> > procedure jdoodle is
> >     package Containers is
> > 
> >       type Container is private;
> >       
> >     private
> > 
> >       type Container_Array is array(1..20) of aliased Integer;
> >       type Container is tagged record
> >          Data : Container_Array := (others => 0);
> >       end record
> >         with Variable_Indexing => Reference;
> >       
> >       type Reference_Holder
> >          (Element : not null access Integer)
> >       is limited null record
> >          with Implicit_Dereference => Element;
> >       
> >       function Reference
> >          (Self  : aliased in out Container;
> >           Index : Positive)
> >           return Reference_Holder
> >       is (Element => Self.Data(Index)'Access);
> >       
> >     end Containers;
> >    
> >     C : aliased Containers.Container;
> > begin
> >     for Index in 1 .. 20 loop
> >         C(Index) := Index;
> >         Put_Line(Integer'Image(C(Index)));
> >     end loop;
> > end jdoodle;
> 
> Where did you get this code from? It's a plain compiler bug. How can a client know the index range?

That's why I started with my original question.  It seems very
odd that it should even be legal.  My intuition screamed bug,
but I couldn't find anything in the RM to say it was illegal.
Is there at least a statement somewhere that specifies the
legality?  I'd rather not go on just what I consider common
sense or my own intuition.

I made the example based off of someone's Ada library on github.


  reply	other threads:[~2018-07-15 15:33 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-14 14:18 Visibility of Indexing aspects Jere
2018-07-14 17:04 ` Shark8
2018-07-14 18:29   ` Jere
2018-07-14 18:41     ` Dmitry A. Kazakov
2018-07-14 23:00     ` Shark8
2018-07-14 23:28       ` Jere
2018-07-15 14:41 ` AdaMagica
2018-07-15 15:33   ` Jere [this message]
2018-07-16  3:22     ` AdaMagica
2018-07-17  0:35       ` Jere
2018-07-17  9:46         ` AdaMagica
2018-07-17 10:11           ` AdaMagica
2018-07-20 12:08             ` Jere
2018-07-20 16:11               ` AdaMagica
2018-07-20 22:03                 ` Dan'l Miller
2018-07-20 22:07                 ` Jere
2018-07-21 10:33                   ` AdaMagica
2018-07-24  3:32                   ` Randy Brukardt
2018-07-24 17:15                     ` Dan'l Miller
2018-07-25  5:37                       ` Randy Brukardt
2018-07-25 18:26                         ` Dan'l Miller
2018-07-25 19:58                           ` AdaMagica
2018-07-25 20:57                             ` Dan'l Miller
2018-07-26  0:12                               ` Randy Brukardt
2018-07-26  2:41                                 ` Dan'l Miller
2018-07-26 19:09                                   ` Randy Brukardt
2018-07-26 20:31                                 ` Shark8
2018-07-26 21:25                                   ` Dan'l Miller
2018-07-27 22:05                                     ` Randy Brukardt
2018-07-28  0:35                                       ` Dan'l Miller
2018-07-27 21:58                                   ` Randy Brukardt
2018-07-20 22:23                 ` Jere
2018-07-20 22:25                   ` Jere
2018-07-21  5:58                   ` J-P. Rosen
  -- strict thread matches above, loose matches on Subject: below --
2018-08-02 20:31 Randy Brukardt
2018-08-03  0:43 ` Dan'l Miller
2018-08-03 20:56   ` Randy Brukardt
2018-08-03 21:32     ` Dan'l Miller
2018-08-06 21:46       ` Randy Brukardt
2018-08-06 22:12         ` Dmitry A. Kazakov
2018-08-07 15:13         ` Dan'l Miller
2018-08-07 22:41           ` Randy Brukardt
replies disabled

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