comp.lang.ada
 help / color / mirror / Atom feed
From: wayne@inmet.inmet.com
Subject: Re: ADA Compiler Query
Date: 13 Feb 91 15:27:00 GMT	[thread overview]
Message-ID: <20600081@inmet> (raw)
In-Reply-To: 5574@baird.cs.strath.ac.uk


The compiler actions are well defined.  According to the LRM (section 6.2:6)
for a scalar parameter (integers, etc) of mode IN OUT the value of the
formal parameter, variable2, is a copy of the actual parameter, variable1
and it in this case it should have the value of 10.  At the end of GET_RESULT
variable1 will be updated from variable2.  Mode IN OUT is not "call by
reference" for scalar types.

 1 procedure MAIN is
 2    variable1 : integer;
 3    result : integer;
 4 ----------------------------------------------------
 5 procedure GET_RESULT(variable2: in out integer) is
 6  begin
 7    variable1 := 2;
 8    variable2 := variable1 + variable2;
 9  end GET_RESULT;
10 ----------------------------------------------------
11 begin
12  variable1 := 10;
13  get_result(variable1);
14 end MAIN;

So at line 6 both variable1 and variable2 have the value of 10.
After line 7 is executed, variable1 has the value of 2, and variable2
still has the value of 10.

The answer should therefore be
   (2) 12

Wayne Wylupski
Intermetrics, Inc.

      reply	other threads:[~1991-02-13 15:27 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1991-02-11 15:41 ADA Compiler Query Gordon Russell
1991-02-13 15:27 ` wayne [this message]
replies disabled

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