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