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!mx02.eternal-september.org!feeder.eternal-september.org!gandalf.srv.welterde.de!news.jacob-sparre.dk!loke.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: AI12-0128 (was: STM32F4 GNAT Run Time System - roadmap) Date: Fri, 11 Dec 2015 15:18:38 -0600 Organization: JSA Research & Innovation Message-ID: References: NNTP-Posting-Host: rrsoftware.com X-Trace: loke.gir.dk 1449868719 21150 24.196.82.226 (11 Dec 2015 21:18:39 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Fri, 11 Dec 2015 21:18:39 +0000 (UTC) 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.6157 Xref: news.eternal-september.org comp.lang.ada:28777 Date: 2015-12-11T15:18:38-06:00 List-Id: "Simon Wright" wrote in message news:lyfuz92fqk.fsf_-_@pushface.org... > "Randy Brukardt" writes: > >> "Simon Wright" wrote in message >> news:lya8pnh1dq.fsf@pushface.org... >>> ...I've not done any evaluation yet aside from noting that they >>> generate the GNAT-specific Volatile_Full_Access aspect, which is >>> noted in the 'under development' version of the GCC docs (so, will >>> likely be in GCC 6). Maybe plain Volatile will do (but users would >>> have to remember to access the whole register explicitly, rather than >>> leaving it up to the compiler to Do The Right Thing); that would be >>> an easy-enough patch. >> >> The ARG has decided on a different direction to fix the problem >> addressed by Volatile_Full_Access; essentially, accesses to >> non-volatile components of atomic objects have to be accessed with a >> read-modify-write cycle. (See AI12-0128-1.) Various parts of Annex C >> will be rewritten to make that make sense. > > I see that !example, 4 lines from the end, says > if Status_Register.Read then -- Illegal. > - should be .Ready You're reading an obsolete version of the AI. We're still working on the new version. But thanks for pointing out the example, 'cause it wasn't updated at all in the new version. There's no extra aspect at all in the newest recommendation, rather compilers are supposed to do the right thing. (That requires making exceptions to C.6(20) and C.6(22) in the case of nonatomic components of an atomic object, plus some added Legality Rules). Randy.