https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101062

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I have tried to backport this patch to the 11 branch, but unlike the trunk, it
doesn't build there, with
atree.ads:3844:34: size for "Node_Record" too small
make[3]: *** [../../gcc/ada/gcc-interface/Make-lang.in:139: ada/errout.o] Error
1
(and many further occurrences of the same error).
Seems the stor-layout.c changes trigger during ada/errout.o compilation just
once, on QUAL_UNION_TYPE atree.ads:3844:34: size for "Node_Record" too small
make[3]: *** [../../gcc/ada/gcc-interface/Make-lang.in:139: ada/errout.o] Error
1
which has byte size 28 and bitfield FIELD_DECL S0 with the same byte size (224
bits) and another bitfield FIELD_DECL O with the same size.
The code then adds two bit field representatives with the same size.

Eric, any idea what's going on?  Shall I readd if (TREE_CODE (t) ==
QUAL_UNION_TYPE) return; at the start function and thus ignore QUAL_UNION_TYPE
and handle only UNION_TYPEs, or should the bitfield representatives in
QUAL_UNION_TYPE get some DECL_QUALIFIER (either one that always evaluates to
false, or the same as corresponding bitfield), something else?
Wonder what is different that it works on the trunk...

Reply via email to