Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!decwrl!pa.dec.com!src.dec.com!kalsow From: kalsow (Bill Kalsow) Newsgroups: comp.lang.modula3 Subject: Re: Local procedure assignment (Bug in M3 1.6 SPARC)? Message-ID: <9104151737.AA02977@jumbo.pa.dec.com> Date: 15 Apr 91 17:37:38 GMT Lines: 10 In-Reply-To: Message of Wed, 10 Apr 91 18:03:33 MET DST from Thomas Roemke <9104101603.AA06880@thor.uni-paderborn.de> To: m3 Cc: Thomas Roemke , kalsow, m3-request I tried Thomas Roemke's program here. The compiler doesn't generate the correct code when it calls "q(z,FALSE)". Since the local procedure q.z doesn't depend on any values in its parent's frame, the compiler decides that it can be passed like a top-level procedure. This is a bug. Adding "VAR zb := b;" as a local declaration in q.z causes the compiler to emit the correct code. Thanks for the bug report. - Bill Kalsow.