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.

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to