aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gnat.dg/in_out_parameter4.adb
blob: 4f5cc2181983c99df7209bc7b3c137ac1ef47160 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-- { dg-do run }
-- { dg-options "-gnat12 -gnatVa" }

procedure In_Out_Parameter4 is

   type Enum is (E_Undetermined, E_Down, E_Up);
   subtype Status_T is Enum range E_Down .. E_Up;

   function Recurse (Val : in out Integer) return Status_T is

     Result : Status_T;

     procedure Dummy (I : in out Integer) is begin null; end;

   begin
     if Val > 500 then
       Val := Val - 1;
       Result := Recurse (Val);
       return Result;
     else
       return E_UP;
     end if;
   end;

   Val : Integer := 501;
   S : Status_T;

begin
   S := Recurse (Val);
end;