[fpc-pascal] Range checks
Sven Barth
pascaldragon at googlemail.com
Sat Jan 27 16:59:26 CET 2018
On 27.01.2018 15:10, C Western wrote:
> The following innocuous looking code generates a range check error:
>
> {$R+}
> function Count: qword;
> begin
> Result := 0;
> end;
> var
> i: Integer;
> begin
> for i := 0 to Count-1 do
> WriteLn(i);
> end.
>
> I can (more or less) see why, but it means that I can't (for example)
> compile the Cocoa widget set in 64 bit with bounds checking on, as then
> qword seems to be used as a count for, for example, NSarray.
>
> Am I missing something?
Integer is 32-bit, QWord is 64-bit. *Of course* there is a range check
error then. You need to use e.g. SizeInt as counter variable type in
those cases (SizeInt is 32-bit on 32-bit systems and 64-bit on 64-bit
systems).
Regards,
Sven
More information about the fpc-pascal
mailing list