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.3 required=5.0 tests=BAYES_00,INVALID_MSGID 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: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: A note on GNAT 3.05 performance Date: 1996/06/24 Message-ID: #1/1 X-Deja-AN: 162474460 references: <4qeubm$8th@linus.mitre.org> organization: Courant Institute of Mathematical Sciences newsgroups: comp.lang.ada Date: 1996-06-24T00:00:00+00:00 List-Id: "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.