[fpc-pascal] Bitpacked bug?
Luca Olivetti
luca at ventoso.org
Sun May 12 18:21:22 CEST 2019
El 12/5/19 a les 17:58, Victor Campillo ha escrit:
> Hi,
>
> I think I found a bug with bitpackeds records.
>
> I have the next record.
>
> TBitpacked = packed record
> Case Integer Of
> 0 : (Word : Word);
> 1 : (Byte : array [0..1] of Byte);
> 2 : (Boolean: bitpacked Array [0..15] of boolean);
> 3 : (Bit : bitpacked Record
> case integer of
> 0: (bit0: Boolean);
> 1: (bit1: Boolean);
> 2: (bit2: Boolean);
> 3: (bit3: Boolean);
> 4: (bit4: Boolean);
> 5: (bit5: Boolean);
> 6: (bit6: Boolean);
> 7: (bit7: Boolean);
> 8: (bit8: Boolean);
> 9: (bit9: Boolean);
> 10: (bit10: Boolean);
> 11: (bit11: Boolean);
> 12: (bit12: Boolean);
> 13: (bit13: Boolean);
> 14: (bit14: Boolean);
> 15: (bit15: Boolean);
> end);
> end;
With that last case, aren't you just defining one bit in the bitpacked
record?
In that case
> pp.Word:=0;
> pp.Bit.bit1:=true;
> writeln(pp.Byte[0]); // This prints 1 -- WRONG
> writeln(pp.Boolean[0]); // This prints True -- WRONG
> writeln(pp.Boolean[1]); // This prints False -- WRONG
this would be correct.
Bye
--
Luca
More information about the fpc-pascal
mailing list