https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65791
Bug ID: 65791 Summary: Postpone expand_ifn_va_arg till after optimize_va_list_gpr_fpr_size Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: vries at gcc dot gnu.org After the fix for PR64950 - postpone expanding va_arg till pass_stdarg, there's this TODO pass_stdarg::execute: ... unsigned int pass_stdarg::execute (function *fun) { /* TODO: Postpone expand_ifn_va_arg till after optimize_va_list_gpr_fpr_size. */ expand_ifn_va_arg (fun); if (flag_stdarg_opt /* This optimization is only for stdarg functions. */ && fun->stdarg != 0) optimize_va_list_gpr_fpr_size (fun); return 0; } ... Essentially, we want to rewrite optimize_va_list_gpr_fpr_size to work on ifn_va_arg.