This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/80136] [7 Regression] ICE in gimplify_modify_expr, at gimplify.c:5627
- From: "wschmidt at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 21 Mar 2017 21:44:26 +0000
- Subject: [Bug tree-optimization/80136] [7 Regression] ICE in gimplify_modify_expr, at gimplify.c:5627
- Auto-submitted: auto-generated
- References: <bug-80136-4@http.gcc.gnu.org/bugzilla/>
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.