https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80136
--- Comment #6 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- Back up in expand_ifn_va_arg_1, when we reach expr = targetm.gimplify_va_arg_expr (ap, type, &pre, &post); the statement being processed is: (gdb) ps stmt # .MEM_3410 = VDEF <.MEM_2810> VA_ARG (&arg, 0B, 0B); and the value of ap is (simplified): mem_ref (addr_expr (var_decl arg), 0) where arg and the mem_ref are of type __gnuc_va_list. So we already have "arg" that is a var_decl, not an ssa_name. All the var_decls in the expression passed to force_gimple_operand are introduced in the call to targetm.gimplify_va_arg_expr. So I suppose that the problem is that force_gimple_operand expects that all operands within expr have already been updated to SSA form, and that is not the case.