On 30/10/12 14:26, ik wrote:
Hello,

I have the following function:

function OneToTwoComplement(AValue: QWord): QWord;
begin
   Result := (AValue xor $FFFFFFFFFFFFFFFF) + 1;
end;

What am I missing here that makes the compiler complain about "Range
check error while evaluating constants" ?
Why doesn't it complain on :

function OneToTwoComplement(AValue: Int64): Int64;
begin
   Result := (Abs(AValue) xor $FFFFFFFFFFFFFFFF) + 1;
end;


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


See http://mantis.freepascal.org/view.php?id=21284

You need something like

function OneToTwoComplement(AValue: QWord): QWord;
begin
  Result := (AValue xor Qword($FFFFFFFFFFFFFFFF)) + 1;
end;




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

Reply via email to