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!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!newsfeed.xs3.de!io.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Convert an access to constant to access to variable Date: Fri, 4 Aug 2017 19:26:27 -0500 Organization: JSA Research & Innovation Message-ID: References: Injection-Date: Sat, 5 Aug 2017 00:26:28 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="15468"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: news.eternal-september.org comp.lang.ada:47598 Date: 2017-08-04T19:26:27-05:00 List-Id: "Victor Porton" wrote in message news:om2rph$18jt$1@gioia.aioe.org... > What is the proper way to convert an access to constant to access to > variable? (Yes, I know that then I need to be careful not to modify this > "variable".) Well, it's not a proper conversion, so there isn't going to be a "proper" way. > Maybe Unchecked_Conversion? That's one possibility. > But: > > 1. Is Unchecked_Conversion guaranteed by the standard to work well in this > case? I think so. The rules for what must work are found in 13.9(5-10). I suppose a compiler could represent access-to-constant and access-to-variable differently. In any case, your program is erroneous if it tries to write a constant. (But you knew that.) > 2. Is there a simpler way than Unchecked_Conversion? The alternative (assuming the access-to-variable is a general access type) is to use 'Access to convert: Ptr.all'Access Nope, that won't work, because Ptr.all is a constant, and the result here has to be a variable in order to assign it into an access-to-variable. You could certainly use Address_to_Access_Conversions, but whether that's "simpler" is in the eye of the beholder. (It also requires an instantiation, and usually an extra type conversion.) Randy.