1-- { dg-do run } 2-- { dg-options "-O -gnatn" } 3 4with Loop_Optimization8_Pkg1; 5 6procedure Loop_Optimization8 is 7 8 Data : Loop_Optimization8_Pkg1.T; 9 10 procedure Check_1 (N : in Natural) is 11 begin 12 if N /= 0 then 13 for I in 1 .. Data.Last loop 14 declare 15 F : constant Natural := Data.Elements (I); 16 begin 17 if F = N then 18 raise Program_Error; 19 end if; 20 end; 21 end loop; 22 end if; 23 end; 24 25 procedure Check is new Loop_Optimization8_Pkg1.Iter (Check_1); 26 27begin 28 Data := Loop_Optimization8_Pkg1.Empty; 29 Check; 30end; 31