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;
What happens in the first case if you cast that constant to a QWord?
--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal