On Tue, Oct 30, 2012 at 10:10 PM, Mark Morgan Lloyd
<markmll.fpc-pas...@telemetry.co.uk> wrote:
> 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?

The compiler stop reporting warnings

>
> --
> 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
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to