This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/80136] [7 Regression] ICE in gimplify_modify_expr, at gimplify.c:5627


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]