https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78428
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I wonder if we really need to restrict this way each field, rather than just provide bitfield_start/bitfield_end for the whole object that is being initialized from the constructor. I mean for var = { { 1, 2 } , { 3, 4 }, ... }; the assignment in gimple is considered one assignment (and when not using atomics, non-atomic one), so it is fine to extend the sizes of the subobjects if it generates better code. We just shouldn't touch anything beyond end of the whole object. As for testcase, I'd hope that after the fix the testcase doesn't timeout, so I think you don't need to set up anything special. If somebody notices it takes too long (I think the default timeout is like 5 minutes), then the bug or some other bug reappeared.