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