ビットフィールドのレコードサイズ

Delphiでビットフィールドのレコードサイズが想定と異なっていて困る。

type
  THoge = record
    FHoge1: 0..(1 shl 24)-1;
    FHoge2: 0..(1 shl 8)-1;
  end;

として、

  Writeln(Format('Size: %d\n', SizeOf(THoge)));

とする。どうなるかというと、

  ==> Size: 8

ああ、packedしていないからかなと、

type
  THoge = packed record
    FHoge1: 0..(1 shl 24)-1;
    FHoge2: 0..(1 shl 8)-1;
  end;

にすると、

  ==> Size: 5

となる。
C++で同様なビットフィールドを作りサイズを計測すると、"4"となり、これが期待した値である。
Delphiちゃんそりゃないよ……。