https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96868
--- Comment #6 from Paweł Bylica <chfast at gmail dot com> --- The workaround is MyObj obj = {}; which at least suggests some inconsistency in the compiler internals. For me this warning should be disabled in C++ when designated initializers are used and all other fields are value initialized.