[Bug tree-optimization/80136] [7 Regression] ICE in gimplify_modify_expr, at gimplify.c:5627
wschmidt at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 21 21:19:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80136
Bill Schmidt <wschmidt at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
--- Comment #5 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
OK, confirmed with a ppc64le->aarch64 cross.
The expression presented to force_gimple_operand is a complicated one.
Simplified representation:
mem_ref (cond_expr (ge_expr (D.16523, 0),
modify_expr (iftmp.394, D.16524),
modify_expr (iftmp.394, X)),
0)
where X is a very complicated compound_expr with plenty of things marked as
having side effects (as are the two modify_exprs above). There's a reference
to __gnuc_va_list buried in there, but we never get that far with the
gimplification before we blow up.
The issue is that the gimplification code doesn't expect to see any var_decls
at this point; since we're in SSA form, it wants to see ssa_vars instead.
However, all of D.16523, D.16524, and iftmp.394 are var_decls. While
processing the first modify_expr, we eventually hit this assert in
gimplify_modify_expr:
if (gimplify_ctxp->into_ssa && is_gimple_reg (*to_p))
{
/* We should have got an SSA name from the start. */
gcc_assert (TREE_CODE (*to_p) == SSA_NAME
|| ! gimple_in_ssa_p (cfun));
}
More information about the Gcc-bugs
mailing list