https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89494
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> --- 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.