https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89494
--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Since Richard's change, assign_parm_data_one has the arg member with function_arg_info type, and that class has a user-provided default constructor. Perhaps for old GCC we could instead of *data = assign_parm_data_one (); do static assign_parm_data_one zeroed_arg; *data = zeroed_arg; or whatever else actually works. I'll try tomorrow to cook up a short testcase with the function_arg_info default ctor and assign_parm_data_one containing it and see what GCC 4.2 does with it.