https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97943
--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- I think the only viable route is to _not_ clear the "padding" covered by flexarray members. We may never ever clear actual values and they, as you say, could be actual values. But ... can we even do a atomic operation on such "incomplete" type? So, isn't there a complete type w/o flexarray always available? So ... sorry () here and reject an attempt to clear padding in an incomplete type? Which raises the question what to do for the real-world case which won't use char b[] since that's not C++ but would use char b[1] ...