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.7 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!mnetor!uunet!mcvax!cernvax!paul From: paul@cernvax.UUCP (paul) Newsgroups: comp.lang.ada Subject: A Bug in Vax-Ada? (ACCVIO) Message-ID: <585@cernvax.UUCP> Date: 17 Dec 87 09:15:36 GMT Reply-To: paul@cernvax.UUCP () Organization: CERN European Laboratory for Particle Physics, CH-1211 Geneva, Switzerland List-Id: <<< DISK$SYSTEM:[NOTES$LIBRARY]ADA.NOTE;1 >>> -< Ada >- ================================================================================ Note 12.0 A bug in Vax Ada compiler... No replies 20514::LOUBOUTIN "Sylvain R.Y. (47 27 37)" 58 lines 14-DEC-1987 18:26 -------------------------------------------------------------------------------- A bug in Vax Ada compiler ? --------------------------- just have a look at that short procedure: with UNCHECKED_DEALLOCATION; with TEXT_IO; procedure G_ADA_BUG is type ACCESS_STRING is access STRING; procedure DISPOSE is new UNCHECKED_DEALLOCATION (STRING, ACCESS_STRING); A: ACCESS_STRING := new STRING'("Ceci est un exemple..."); B: constant STRING := A.all; begin -- G_ADA_BUG TEXT_IO.PUT_LINE (A.all); TEXT_IO.PUT_LINE (B); DISPOSE (A); TEXT_IO.PUT_LINE (B); end G_ADA_BUG; I have compiled (with default options) it with Vax Ada V1.4-33 running under Vax/Vms V4.5 on a Vax-8600. The expected result is: Ceci est un exemple... Ceci est un exemple... Ceci est un exemple... But I got it: Ceci est un exemple... Ceci est un exemple... %SYSTEM-F-ACCVIO, access violation, reason mask=00, virtual address=7FF3EA00, PC=00013FF3, PSL=0BC00000 %TRACE-F-TRACEBACK, symbolic stack dump follows module name routine name line rel PC abs PC 00013FF3 00013FF3 000138B0 000138B0 000138E6 000138E6 G_ADA_BUG G_ADA_BUG 21 000001EC 00000AD9 ADA$ELAB_G_ADA_ ADA$ELAB_G_ADA_BUG 00000009 00000809 00000B38 00000B38 0000D1F2 0000D1F2 ADA$ELAB_G_ADA_ ADA$ELAB_G_ADA_BUG 0000001B 0000081B 00000B13 00000B13 This program behaves like if it was written like this: ... A: ACCESS_STRING := new STRING'("Ceci est un exemple..."); B: STRING renames A.all; ... It is quit dangerous, isn'it ? SRYL