On 07/03/2019 13:19, Adriano dos Santos Fernandes wrote:
> Decimal64 seems to be some 64-bit integers in sequence, so won't the
> alignment instead be sizeof(SINT64)?

It's single SINT64, so it's not a problem. At least in 64 bits...


> If we think on FB_MESSAGE (i.e., a struct) things will not match.
>
> Also seems problematic SINT64 which is 32-bit aligned in 32-bit arch
> AFAIK but is defined as sizeof(SINT64) in type_alignments.
>
ISC_INT64 (as well dec floats) does not work in Linux 32 bits with
FB_MESSAGE. The alignments are really defined incorrectly in
type_alignments.

It's interesting that alignof and std::alignment_of also gives wrong
result. Some details here. Kernel people also did it wrong:
https://patchwork.kernel.org/patch/9251121/


Adriano



Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to