Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!hplabs!hpfcso!mjs From: mjs@hpfcso.HP.COM (Marc Sabatella) Newsgroups: comp.lang.misc Subject: Re: Re: NOT Educating FORTRAN programmers to use C Message-ID: <8960004@hpfcso.HP.COM> Date: 17 Jan 90 17:41:40 GMT References: <15623@haddock.ima.isc.com> Organization: Hewlett-Packard, Fort Collins, CO, USA Lines: 25 >The Fortran 77 standard allows an implementation to have as many intrinsics >as desired. Functions can be expanded in-line, moved out of loops, and >otherwise optimized, unless you specifically declare them external to tell it >to use one that you wrote in preference to any external. And similarly, XPG3 defines oodles of C functions which are illegal to redefine, and an optimizer can do the same things with those that it can with Fortran intrinsics. And user defined static functions can be expanded in-line, as can global ones (provided the original definition stays intact for other compilation units). I still fail to see the win here. >Fortran very specifically prohibits invisible aliasing among arguments and >common, the optimizer is allowed to make the most optimistic assumptions in >this case. Show me the optimizer that makes these assumptions, and I'll show you one that breaks the code of every customer we have, and I am not sure I believe it, in any case. Do you mean it is even illegal to pass the same argument in two different positions of a formal parameter list? For instance: subroutine foo (x, y) ... call foo (a, a)