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,FREEMAIL_FROM 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!aioe.org!.POSTED!not-for-mail From: Victor Porton Newsgroups: comp.lang.ada Subject: Re: Modern optimizing compilers Date: Tue, 22 Aug 2017 04:11:53 +0300 Organization: Aioe.org NNTP Server Message-ID: References: <30f25a94-fc6d-4663-9405-d4d8601d6681@googlegroups.com> NNTP-Posting-Host: I58n5mqJebgcOFNDKXkBJw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Complaints-To: abuse@aioe.org User-Agent: KNode/4.14.10 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:47777 Date: 2017-08-22T04:11:53+03:00 List-Id: gautier_niouzes@hotmail.com wrote: > You can compile a package containing a test procedure putting 123 into an > Integer field of a record (tagged or not) and look at the assembler > output. With GNAT it's gcc -S -O2 test_pkg.adb NB: the procedure probably > needs to feed then an "out" parameter to prevent the compiler optimizing > out completely the assignment with 123. It seems that your case is wrong. This procedure has no other choice than to write into the referenced record. We can however check with code like: procedure M is type T is record X: Integer; end record; I: T; begin I.X := 10; Ada.Text_IO.Put_Line(Integer'Image(I.X)); end; > Gautier > _____________________________________________________________ > A free online game in Ada: http://pasta.phyrama.com/game.html -- Victor Porton - http://portonvictor.org