https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102019
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:1ab84eda5548119908c4e24c6ad953dd7c00a5b7 commit r12-3143-g1ab84eda5548119908c4e24c6ad953dd7c00a5b7 Author: Jakub Jelinek <ja...@redhat.com> Date: Wed Aug 25 22:35:21 2021 +0200 c++: Fix up value initialization of structs with zero width bitfields [PR102019] The removal of remove_zero_width_bit_fields, in addition to triggering some ABI issues that need solving anyway (ABI incompatibility between C and C++) also resulted in UB inside of gcc, we now call build_zero_init which calls build_int_cst on an integral type with TYPE_PRECISION of 0. Fixed by ignoring the zero width bitfields. I understand build_value_init_noctor wants to initialize to 0 even unnamed bitfields (of non-zero width), at least until we have some CONSTRUCTOR flag that says that even all the padding bits should be cleared. 2021-08-25 Jakub Jelinek <ja...@redhat.com> PR c++/102019 * init.c (build_value_init_noctor): Ignore unnamed zero-width bitfields.