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=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,af42f89f2159f3b6 X-Google-Attributes: gid103376,public From: progers@acm.org Subject: Re: A note on GNAT 3.05 performance Date: 1996/06/28 Message-ID: <4r0vok$d8g@uuneo.neosoft.com>#1/1 X-Deja-AN: 162589800 references: <4qeubm$8th@linus.mitre.org> organization: NeoSoft, Inc. reply-to: progers@acm.org newsgroups: comp.lang.ada Date: 1996-06-28T00:00:00+00:00 List-Id: In , dewar@cs.nyu.edu (Robert Dewar) writes: >"Michael F Brenner (mfb@mbunix.mitre.org) wrote: > >: Is this why djgpp DOS interrupts don't work any more...because >: the structure containing the registers is a record type? >" > >The best guess is that this relates to code that improperly assumes >that records are passed by reference. In Ada (and in GNAT) whether >a record is passed by reference or copy is implementatoin dependent >and may change from one version of the compiler to another, or >from one port to another (for example, in some ports, small records >are passed by value in registers). > >If you want something passed by reference and your code depends on it, >either use an access parameter (if the value is guaranteed to be non-null) >or an explicit access type. This is the only legitimate way to be sure >that a record is passed by reference. > Or make it limited. pat --------------- Patrick Rogers progers@acm.org