diff options
Diffstat (limited to 'gcc/testsuite/gnat.dg/loop_optimization1.adb')
-rw-r--r-- | gcc/testsuite/gnat.dg/loop_optimization1.adb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/loop_optimization1.adb b/gcc/testsuite/gnat.dg/loop_optimization1.adb new file mode 100644 index 000000000..8875c1f8d --- /dev/null +++ b/gcc/testsuite/gnat.dg/loop_optimization1.adb @@ -0,0 +1,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; |