https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89494
--- Comment #16 from Piotr Kubaj <pkubaj at anongoth dot pl> --- 634afa05a8cbff010480088811fe1f39eca70c1d is the first bad commit commit 634afa05a8cbff010480088811fe1f39eca70c1d Author: Richard Sandiford <richard.sandif...@arm.com> Date: Tue Aug 20 08:53:52 2019 +0000 Make function.c use function_arg_info internally This patch adds a function_arg_info field to assign_parm_data_one, so that: - passed_type -> arg.type - promoted_mode -> arg.mode - named_arg -> arg.named We can then pass this function_arg_info directly to the converted hooks. Between the initialisation of the assign_parm_data_one and the application of promotion rules (which is a state internal to assign_parm_find_data_types), arg.mode is equivalent to passed_mode (i.e. to TYPE_MODE). 2019-08-20 Richard Sandiford <richard.sandif...@arm.com> gcc/ * function.c (assign_parm_data_one): Replace passed_type, promoted_mode and named_arg with a function_arg_info field. (assign_parm_find_data_types): Remove local variables and assign directly to "data". Make data->passed_mode shadow data->arg.mode until promotion, then assign the promoted mode to data->arg.mode. (assign_parms_setup_varargs, assign_parm_find_entry_rtl) (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl) (assign_parm_remove_parallels, assign_parm_setup_block_p) (assign_parm_setup_block, assign_parm_setup_reg) (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use arg.mode instead of promoted_mode, arg.type instead of passed_type and arg.named instead of named_arg. Use data->arg for function_arg_info structures that had the field values passed_type, promoted_mode and named_arg. Base other function_arg_infos on data->arg, changing the necessary properties. From-SVN: r274705 gcc/ChangeLog | 19 +++++++ gcc/function.c | 168 +++++++++++++++++++++++++-------------------------------- 2 files changed, 92 insertions(+), 95 deletions(-)