[fpc-pascal] Range checks
Santiago A.
svaa at ciberpiula.net
Mon Jan 29 21:04:37 CET 2018
El 27/01/18 a las 15:10, C Western escribió:
> 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?
The problem is that count is qword, so the operation is qword until it
needs to convert it
for i:=0 to integer(qword( qword(count) - qword(1)) do
try this:
for i := 0 to *integer*(Count)-1 do
--
--------
Saludos
Santiago A.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20180129/790af5da/attachment.html>
More information about the fpc-pascal
mailing list