comp.lang.ada
 help / color / mirror / Atom feed
From: "William D. Ghrist" <ghristwd@pgh.net>
Subject: Re: Parameter evaluation order
Date: 1998/04/06
Date: 1998-04-06T00:00:00+00:00	[thread overview]
Message-ID: <3528CEB6.EDE@pgh.net> (raw)
In-Reply-To: 6g9d2o$tfg$1@nnrp1.dejanews.com


Mark.Rutten@dsto.defence.gov.au wrote:
> 
> I'm using GNAT3.09 on WindowsNT (and also Solaris, but I didn't get
> this problem).
> 
> I compiled a procedure call similar to the following
> 
>   proc(func_one,func_two);
> 
> The program relies on func_one being called _before_ func_two. But
> at run-time the code above did the opposite! Is this a bug (and if so, has it
> been fixed in 3.10)? Or is there something written in the language definition
> to justify this behaviour?
> 
> Thanks,
> Mark Rutten
> 
> -----== Posted via Deja News, The Leader in Internet Discussion ==-----
> http://www.dejanews.com/   Now offering spam-free web-based newsreading

Yes, it is a bug in your program.  The order of execution of parameters
is not defined (this is true in other languages besides Ada, as well). 
This is one of the reasons that it is considered poor practice to write
functions with side effects.  If you must use functions with side
effects that result in situations like your example, then the valid way
to proceed is to invoke the functions first, storing their return values
in variables, then to call the procedure with the variables as
parameters.

Regards,
Bill Ghrist





  parent reply	other threads:[~1998-04-06  0:00 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-04-05  0:00 Parameter evaluation order Mark.Rutten
1998-04-05  0:00 ` Matthew Heaney
1998-04-07  0:00   ` Don Harrison
1998-04-09  0:00   ` Simon Wright
1998-04-10  0:00     ` Matthew Heaney
1998-04-10  0:00       ` Simon Wright
1998-04-11  0:00         ` Robert Dewar
1998-04-06  0:00 ` Corey Ashford
1998-04-06  0:00 ` William D. Ghrist [this message]
1998-04-08  0:00 ` Glenden Lee
1998-04-09  0:00   ` Robert Dewar
     [not found]     ` <Er5Ir9.5Ip@world.std.com>
1998-04-09  0:00       ` Peter Amey
1998-04-09  0:00       ` Tucker Taft
1998-04-16  0:00         ` Nick Roberts
1998-04-17  0:00           ` Robert Dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox