From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!aioe.org!5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Messing with access types... Date: Mon, 28 Dec 2020 11:14:39 +0100 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: 5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 Content-Language: en-US X-Notice: Filtered by postfilter v. 0.9.2 Xref: reader02.eternal-september.org comp.lang.ada:60962 List-Id: On 2020-12-28 10:44, Marek wrote: > I have some code: [...] > When I try to compile test.adb I get some warnings: > > Compile > [Ada] test.adb > test.adb:20:04: warning: in instantiation at util.adb:34 > test.adb:20:04: warning: in instantiation at util.adb:56 > test.adb:20:04: warning: accessibility check failure > test.adb:20:04: warning: "Program_Error" will be raised at run time > test.adb:20:04: warning: in instantiation at util.adb:34 > test.adb:20:04: warning: in instantiation at util.adb:56 > test.adb:20:04: warning: cannot convert local pointer to non-local > access type > test.adb:20:04: warning: Program_Error will be raised at run time > [Ada] util.adb > Bind > [gprbind] test.bexch > [Ada] test.ali > Link > [link] test.adb > [2020-12-28 10:30:50] process terminated successfully, elapsed time: 00.92s > > I tried also to move every local (to Test procedure) variables to global > scope but result is the same. > > What is going on? Can you explain where is the problem? What are you trying to achieve? Because the code does not make much sense to me. P.S. If you are trying to do some C bindings flat arrays are easier choice than Interfaces.C.Pointers. C has no arrays, but pointers. Ada's arrays are never compatible with any pointers, except when flat. Therefore using access to String would be wrong in most, if not all, cases. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de