bitpacked keyword calculates wrong bitSizeOf for border case number ranges
Original Reporter info from Mantis: kays @KaiBurghardt
-
Reporter name: Kai Burghardt
Original Reporter info from Mantis: kays @KaiBurghardt
- Reporter name: Kai Burghardt
Description:
The bitpacked keyword performs wrong bitSizeOf calculations for components that are ordinal types fulfilling certain border cases.
Steps to reproduce:
This program prints -1, 0, -1, but -1, 0, 1 is expected:
program bitpackingRanges(input, output, stderr);
var
structure: bitpacked record
field: -1..1;
end;
i: longint;
begin
with structure do
begin
for i := low(field) to high(field) do
begin
field := i;
writeLn(binStr(field, bitSizeOf(field)), ' ', field:4);
end;
end;
end.