Sorry, I forgot to mention there is {$Q-} in the source.

The trick was indeed to use dec(longint(a),b). However I had missed one place in the code, so I got another runtime error from there.

But why does it only work with longint, and not with longword?

This looks like a missing declaration of one variant of the dec function.


var
  a,b : longword;
  i,j : byte;

begin
  {$Q-}
  for i := 0 to 4 do begin
     for j := 0 to 4 do begin
        write (i,' ',j,'  ');
        a := longword(j) * 1000000000;
        b := longword(i) * 1000000000;
        write (a:10,' ',b:10,' ');
      { a := a-b;  }         { fail at 1 0 }
      { dec (a,b); }         { fail at 1 0 }
        dec (longint(a),b);  { ok }
        writeln (a:11);
     end;
  end;
end.

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

Reply via email to