URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Go to most recent revision |
Only display areas with differences |
Details |
Blame |
View Log
Rev 304 |
Rev 338 |
-- { dg-do run }
|
-- { dg-do run }
|
-- { dg-options "-gnata" }
|
-- { dg-options "-gnata" }
|
|
|
procedure Nested_Return_Test is
|
procedure Nested_Return_Test is
|
function H (X: integer) return access integer is
|
function H (X: integer) return access integer is
|
Local : aliased integer := (X+1);
|
Local : aliased integer := (X+1);
|
begin
|
begin
|
case X is
|
case X is
|
when 3 =>
|
when 3 =>
|
begin
|
begin
|
return Result : access integer do
|
return Result : access integer do
|
Result := new integer '(27);
|
Result := new integer '(27);
|
begin
|
begin
|
for I in 1 .. 10 loop
|
for I in 1 .. 10 loop
|
result.all := result.all + 10;
|
result.all := result.all + 10;
|
end loop;
|
end loop;
|
return;
|
return;
|
end;
|
end;
|
end return;
|
end return;
|
end;
|
end;
|
when 5 =>
|
when 5 =>
|
return Result: Access integer do
|
return Result: Access integer do
|
Result := New Integer'(X*X*X);
|
Result := New Integer'(X*X*X);
|
end return;
|
end return;
|
when others =>
|
when others =>
|
return null;
|
return null;
|
end case;
|
end case;
|
end;
|
end;
|
begin
|
begin
|
pragma Assert (H (3).all = 127);
|
pragma Assert (H (3).all = 127);
|
pragma Assert (H (5).all = 125);
|
pragma Assert (H (5).all = 125);
|
null;
|
null;
|
end Nested_Return_Test;
|
end Nested_Return_Test;
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.