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.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!weretis.net!feeder4.news.weretis.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!85.12.16.70.MISMATCH!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!fx19.fr7.POSTED!not-for-mail Subject: Re: In mode parameter in an assignment statement Newsgroups: comp.lang.ada References: <82fdea5d-b9b6-4f1e-a45f-ee0ff9f55946@googlegroups.com> From: Per Sandberg User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: <82fdea5d-b9b6-4f1e-a45f-ee0ff9f55946@googlegroups.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Message-ID: X-Complaints-To: abuse@usenet.se NNTP-Posting-Date: Sat, 13 Oct 2018 06:03:01 UTC Organization: usenet.se Date: Sat, 13 Oct 2018 08:03:00 +0200 X-Received-Bytes: 2119 X-Received-Body-CRC: 747248363 Xref: reader02.eternal-september.org comp.lang.ada:54559 Date: 2018-10-13T08:03:00+02:00 List-Id: package GNATCOLL.Mmap is .... private type Mapped_Region_Record; type Mapped_Region is access Mapped_Region_Record; ... end GNATCOLL.Mmap; If you look in the spec you will see that Mapped_Region is an access type referencing the incomplete Mapped_Region_Record that is completed in the body, any yes the implicit deference makes it look a bit strange. /P On 10/13/18 2:48 AM, Anh Vo wrote: > -- ... > > ------------------ > -- Compute_Data -- > ------------------ > > procedure Compute_Data (Region : Mapped_Region) is > Data_Shift : constant Storage_Offset := > Storage_Offset (Region.User_Offset - Region.System_Offset); > begin > if Region.User_Size = 0 then > Region.Data := Empty_String'Address; > elsif Region.Mapped then > Region.Data := Region.Mapping.Address + Data_Shift; > else > Region.Data := Region.Buffer.all'Address + Data_Shift; > end if; > end Compute_Data; > > end GNATCOLL.Mmap; > > The above code is the tail end of package gnatcoll-mmap.adb. > > I thought it should be rejected during compilation because in mode parameter is not allowed in an assignment statement. But, it was compiled successfully under GNAT obviously. > > What did I miss? Thanks in advance. > > Anh Vo >