@@ -507,7 +507,7 @@ unit optloop;
startvaltemp:=maybereplacewithtemp(tfornode(arg).right,initcode,initcodestatements,tfornode(arg).right.resultdef.size,true);
nn:=caddrnode.create(
- cvecnode.create(tvecnode(n).left.getcopy,tfornode(arg).right.getcopy)
+ cvecnode.create(tvecnode(n).left.getcopy,ctypeconvnode.create_internal(tfornode(arg).right.getcopy,tvecnode(n).right.resultdef))
);
{ If the calculation is not performed at the end
it is needed to adjust the starting value }
@@ -0,0 +1,23 @@
+type
+ myrec=record
+ f1,f2,f3:byte;
+ end;
+ myenum=(
+ asd=0
+ );
+
+const
+ myarr:array [myenum] of myrec=(
+ (f1:1;f2:2;f3:3)
+procedure foo;
+var
+ i:byte;
+begin
+ for i:=0 to 0 do
+ writeln(myarr[myenum(i)].f2);
+end;
+end.