https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108993
--- Comment #12 from Jonathan Wakely <redi at gcc dot gnu.org> --- I don't see any ambiguity: "otherwise, the object is zero-initialized and the semantic constraints for default-initialization are checked, **and** if T has a non-trivial default constructor, the object is default-initialized;" It doesn't say zero-init OR default-init, it very clearly says zero-init AND default-init.