view gcc/testsuite/gnat.dg/opt1.adb @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 04ced10e8804
children
line wrap: on
line source

-- { dg-do compile }
-- { dg-options "-O -gnatws" }

package body Opt1 is

   function De_Linear_Index
     (Index       : Natural;
      D           : Natural;
      Ind_Lengths : Dimention_Length)
      return        Dimension_Indexes
   is
      Len     : Natural := 1;
      Tmp_Ind : Natural := Index;
      Tmp_Res : Natural;
      Result  : Dimension_Indexes (1 .. D);
   begin
      for J in 1 .. D loop
         Len := Len * Ind_Lengths (J);
      end loop;

      for J in Result'Range loop
         Result (J) := Tmp_Res;
         Tmp_Ind := Tmp_Ind - Len * (Result (J) - 1);
      end loop;

      return Result;
   end;

end Opt1;