warum bekomme ich eine RangeCheck Warnung, wenn ich versuche einer QWord Konstanten den maximal möglichen Wert (siehe https://www.freepascal.org/docs-html/rt ... qword.html) zuzuweisen? Ich muss explizit Rangecheck deaktivieren, sonst kann ich das Programm nicht mit -Cr bzw. -CR kompilieren. (Lazarus Trunk, FPC Trunk 64bit, Windows)
Z.B. Test:
Code: Alles auswählen
program Project1;
uses sysutils;
const
{$R-}
MaxQWord: QWord = $FFFFFFFFFFFFFFFF; // Max QWord
{$R+}
var
Q: QWord;
i: Integer;
begin
Q := 0;
for i := 0 to 63 do
begin
Q := Q shl 1 + 1;
Writeln(i:2, ' ', Q:20, ' ', IntToHex(Q, 16));
end;
ReadLn;
end.