-- { dg-do run } | |
-- { dg-options "-O2" } | |
procedure Opt14 is | |
type Rec is record | |
I1, I2, I3 : Integer; | |
end record; | |
type Ptr is access Rec; | |
P : Ptr := new Rec'(0,0,0); | |
procedure Sub (R : In Out Rec) is | |
begin | |
R.I3 := R.I3 - 1; | |
end; | |
begin | |
P.all := (1,2,3); | |
Sub (P.all); | |
if P.all /= (1,2,2) then | |
raise Program_Error; | |
end if; | |
end; |