https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85707
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Note for the example if you use -O3 the loop gets turned into memset() and the code generated is the same besides the memset being conditional on if (_buckets != 0) For the diagnostic, isn't class Position "enough" POD so we can avoid the diagnostic? So IMHO whatever the standard active considers (extended) PODs should be not warned about (or the warning get multiple levels so users get a choice?)