for loop Error: range check error while evaluating constants
Original Reporter info from Mantis: roked
-
Reporter name: Marģers
Original Reporter info from Mantis: roked
- Reporter name: Marģers
Description:
With range check ON for loop gives rang check error, when loop counter is unsigned integer. From and to values should be variables unsigned integers same size or grater.
Compiler parameters -O3 or -O4 should be provided. My guess, it's optimization error.
Steps to reproduce:
compile with -O3 or -O4
{$r+}
procedure range_check_fail;
var v : word;
vTo : word;
vNo : word;
begin
vTo:=3;
vNo:=0;
for v:=vNo to vTo do {Error: range check error while evaluating constants (-1 must be between 0 and 65535)}
begin
end;
end;
Mantis conversion info:
- Mantis ID: 34543
- OS: linux
- Platform: x86_64
- Version: 3.3.1
- Fixed in version: 3.2.0
- Fixed in revision: 43367 (#b6e7ebdd)