OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gnat.dg/] [nested_return_test.adb] - Diff between revs 304 and 338

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;
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.