* snames.ads-tmpl (Name_Ivdep): New pragma-related name.
[official-gcc.git] / gcc / testsuite / gnat.dg / nested_return_test.adb
blobbc9f043cfe1ca7403011d2382c3497116a22be49
1 -- { dg-do run }
2 -- { dg-options "-gnata" }
4 procedure Nested_Return_Test is
5 function H (X: integer) return access integer is
6 Local : aliased integer := (X+1);
7 begin
8 case X is
9 when 3 =>
10 begin
11 return Result : access integer do
12 Result := new integer '(27);
13 begin
14 for I in 1 .. 10 loop
15 result.all := result.all + 10;
16 end loop;
17 return;
18 end;
19 end return;
20 end;
21 when 5 =>
22 return Result: Access integer do
23 Result := New Integer'(X*X*X);
24 end return;
25 when others =>
26 return null;
27 end case;
28 end;
29 begin
30 pragma Assert (H (3).all = 127);
31 pragma Assert (H (5).all = 125);
32 null;
33 end Nested_Return_Test;