https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89494
--- Comment #18 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #17) > So, what exactly happens? Does GCC 4.2 e.g. fail to initialize all members > to zeros in the > - memset (data, 0, sizeof (*data)); > + *data = assign_parm_data_one (); > change? > Would it work to > memset (data, 0, sizeof (*data)); > data->arg = function_arg_info (); > for old GCC, or add for old GCC an explicit default constructor to > struct assign_parm_data_one, or > #if GCC_VERSION < 4300 > memset (data, 0, sizeof (*data)); > #endif > *data = assign_parm_data_one (); > ? > Most of the other changes seem to be just about using different member names > and thus shouldn't really matter much. hmm I don't see a CTOR specified for assign_parm_data_one. So I guess it's using an implicit default, which is perhaps trivial (assuming that the struct assign_parm_data_one is POD, which seems possible). Will poke at this when I have a spare machine supporting that bootstrap compiler.