https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65816
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- Hmm, for the original example in comment 0 we do use build_value_init, but this branch is not taken: else if (TYPE_HAS_COMPLEX_DFLT (type)) { /* This is a class that needs constructing, but doesn't have a user-provided constructor. So we need to zero-initialize the object and then call the implicitly defined ctor. This will be handled in simplify_aggr_init_expr. */ AGGR_INIT_ZERO_FIRST (ctor) = 1; return ctor; } But for my example in comment 1 there is no call to build_value_init, even though X() should perform value-initialization. So maybe these are two separate bugs.