From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,feb9db77c9b5b310 X-Google-Attributes: gid103376,public From: John Harbaugh Subject: Re: Access to Unconstrained Arrays Date: 1997/04/18 Message-ID: <3357B77F.44EE@boeing.com>#1/1 X-Deja-AN: 235795493 Sender: nntp@news.boeing.com (Boeing NNTP News Access) X-Nntp-Posting-Host: elaptop.knt.boeing.com References: <335507B4.7A03@boeing.com> Organization: Boeing Defense and Space Group - Employee Training Newsgroups: comp.lang.ada Date: 1997-04-18T00:00:00+00:00 List-Id: John Harbaugh wrote: > > When trying to pass pointers to objects of unconstrained array type, I > am getting confusing compiler errors. For example: > > procedure Main is > type Lists is array(Natural range <>) of Integer; > type Lists_Ptrs is access all Lists; > > procedure Do_Something(To : in out Lists_Ptrs) is... > > List1 : Lists(1..4) := (1,2,3,4); > List2 : Lists := (1,2,3,4); > > begin > Do_Something(To => List1); -- Compilation Error. Why? > Do_Something(To => List2); -- No problemo!!! > end Main; > > List1 should be an anonymous constrained subtype of type Lists. I was > under the impression that subtypes are simply a subset of their base > type. Is this not the case for constrained subtypes of unconstrained > types? > > Thanks in advance for any who may respond. > > - John How embarrasing, please excuse the mangled code. What I meant to show was: procedure Main is type Lists is array(Natural range <>) of Integer; type Lists_Ptrs is access all Lists; procedure Do_Something(To : in Lists_Ptrs) is separate; List1 : aliased Lists(1..4) := (1,2,3,4); List2 : aliased Lists := (1,2,3,4); Ptr : Lists_Ptrs; begin Ptr := List1'access; Do_Something(To => Ptr); -- Compilation Error. Why? Ptr := List2'access; Do_Something(To => Ptr); -- No problemo!!! end Main; Apparently, the problem is that Lists(1..4) is a different subtype indication than Lists. Sheepishly, - John