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=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,cbd507df3efa824b X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-02-05 16:33:04 PST Path: supernews.google.com!sn-xit-02!supernews.com!news.tele.dk!151.189.0.75!newsfeed.germany.net!newsfeed.nyu.edu!typhoon.nyu.edu!lab.ultra.nyu.edu!kenner Newsgroups: comp.lang.ada Subject: Re: Help with Atomic_Components and whole array assignment References: <94hno6$p8s$1@nnrp1.deja.com> <3A76E455.AABF2490@averstar.com> <9570vu$fv0$1@nnrp1.deja.com> Organization: New York University Ultracomputer Research Lab From: kenner@lab.ultra.nyu.edu (Richard Kenner) Message-ID: Date: Tue, 06 Feb 2001 00:32:49 GMT NNTP-Posting-Host: 128.122.140.194 X-Trace: typhoon.nyu.edu 981419569 128.122.140.194 (Mon, 05 Feb 2001 19:32:49 EST) NNTP-Posting-Date: Mon, 05 Feb 2001 19:32:49 EST Xref: supernews.google.com comp.lang.ada:4954 Date: 2001-02-06T00:32:49+00:00 List-Id: In article <9570vu$fv0$1@nnrp1.deja.com> Robert Dewar writes: >The GNU/Linux kernel had endless problems from assumptions >of this kind, and finally they have all been replaced by >machine language insertions, to avoid the problems. What >happened in this case is that new improved and correct gcc >compilers blew the kernel out of the water by breaking these >undocumented assumptions. That's an oversimplification, unfortunately. Most of the assumptions were indeed in machine language insertions, but the assumption were things that GCC would do *around* those insertions (such as register choice). GCC has powerful facilities for saying where operands are found and such, but they weren't fully used since "it worked without them". The change was to use the machine-code insertions properly. One other thing that would sometimes be seen was going off the end of an array purposely in order to reference a variable in the calling program.