1-- { dg-do compile } 2-- { dg-options "-O" } 3 4with System, Ada.Unchecked_Conversion; 5with System.Storage_Elements; use System.Storage_Elements; 6 7procedure Loop_Address2 is 8 9 type Ptr is access all Integer; 10 11 function To_Ptr is new Ada.Unchecked_Conversion (System.Address, Ptr); 12 13 function F (BM : System.Address; I : Integer) return System.Address is 14 begin 15 return BM + Storage_Offset (4*I); 16 end; 17 18 B : Integer; 19 P : Ptr; 20 21begin 22 for I in 0 .. 2 loop 23 P := To_Ptr (F (B'Address, I)); 24 P.all := 0; 25 end loop; 26end ; 27