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,29fe9a340e0d180d,start X-Google-Attributes: gid103376,public From: Andre Spiegel Subject: Depending on passing mechanism Date: 1997/10/13 Message-ID: #1/1 X-Deja-AN: 280090106 Sender: spiegel@moon.inf.fu-berlin.de Organization: Freie Universitaet Berlin X-Access: 16 17 19 Newsgroups: comp.lang.ada Date: 1997-10-13T00:00:00+00:00 List-Id: This has been discussed before, but I couldn't find the information I need on DejaNews... In Ada, compilers may choose to pass certain types either by reference or by copy (see RM95 6.2). This allows for greater efficiency (bit arrays may be passed in registers, etc.), but under some circumstances, this can change program semantics (RM95 6.2(12)). I know that it is not possible to forbid these problematic cases altogether, because detecting them would be equivalent to solving the halting problem. Question: Could anyone give me references to papers, books, or web pages where this is discussed? Particularly, I'm looking for * the proof that it's equivalent to the halting problem. (I could do it myself, but I'd like to reference it in a paper.) * a discussion as to how far compilers can reasonably go, i.e. which cases can in fact be detected, and under what cost. Please reply by e-mail, I'll summarize. Thanks, Andre Spiegel Free University of Berlin