summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/loop_optimization1.adb
blob: 8875c1f8d81665f0e20d67c1380b6bc9fea4bc99 (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
-- { dg-do compile }
-- { dg-options "-O3" }

package body Loop_Optimization1 is

   procedure Create (A : in out D; Val : Integer) is

      M : constant Group_Chain_List := Group_Chains(Val);
      G : constant Group_List := Groups(Val);

      function Is_Visible (Group : Number) return Boolean is
      begin
         for I in M'Range loop
            if Group = M(I).Groups(M(I).Length) then
               return True;
            end if;
         end loop;
         return False;
      end;

   begin
      for I in A.L'Range loop
         A.L(I) := new R(Is_Visible(G(I)));
      end loop;
   end;

end Loop_Optimization1;