|
@@ -682,16 +682,7 @@ implementation
|
|
objectlibrary.getjumplabel(falselabel);
|
|
objectlibrary.getjumplabel(falselabel);
|
|
end;
|
|
end;
|
|
secondpass(right);
|
|
secondpass(right);
|
|
-
|
|
|
|
- if cs_check_range in aktlocalswitches then
|
|
|
|
- begin
|
|
|
|
- if left.resulttype.def.deftype=arraydef then
|
|
|
|
- rangecheck_array;
|
|
|
|
- end;
|
|
|
|
-
|
|
|
|
- { if mulsize = 1, we won't have to modify the index }
|
|
|
|
- location_force_reg(exprasmlist,right.location,OS_ADDR,(mulsize = 1));
|
|
|
|
-
|
|
|
|
|
|
+
|
|
if isjump then
|
|
if isjump then
|
|
begin
|
|
begin
|
|
truelabel:=otl;
|
|
truelabel:=otl;
|
|
@@ -700,6 +691,16 @@ implementation
|
|
else if (right.location.loc = LOC_JUMP) then
|
|
else if (right.location.loc = LOC_JUMP) then
|
|
internalerror(2006010801);
|
|
internalerror(2006010801);
|
|
|
|
|
|
|
|
+ { if mulsize = 1, we won't have to modify the index }
|
|
|
|
+ location_force_reg(exprasmlist,right.location,OS_ADDR,(mulsize = 1));
|
|
|
|
+
|
|
|
|
+ { only range check now, we can't range check loc_flags/loc_jump }
|
|
|
|
+ if cs_check_range in aktlocalswitches then
|
|
|
|
+ begin
|
|
|
|
+ if left.resulttype.def.deftype=arraydef then
|
|
|
|
+ rangecheck_array;
|
|
|
|
+ end;
|
|
|
|
+
|
|
{ produce possible range check code: }
|
|
{ produce possible range check code: }
|
|
if cs_check_range in aktlocalswitches then
|
|
if cs_check_range in aktlocalswitches then
|
|
begin
|
|
begin
|