[fpc-pascal] Range check error while evaluating constants

Mark Morgan Lloyd markMLl.fpc-pascal at telemetry.co.uk
Tue Oct 30 21:10:09 CET 2012


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]



More information about the fpc-pascal mailing list