[Bug middle-end/68291] [6 regression] ICE in emit_move_insn, at expr.c:3540

aoliva at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Dec 7 01:34:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68291

--- Comment #10 from Alexandre Oliva <aoliva at gcc dot gnu.org> ---
I'm not comfortable with your relaxing the assert in cfgexpand.c:set_rtl.  It
means we could have a PARALLEL for a RESULT_DECL *and* other variables, because
of coalescing.  Although we can deal with PARALLELs in a RESULT_DECL, not all
expanders will deal with them successfully, IIRC.  We should make sure the
RESULT_DECL is not coalesced with other variables if we are to accept a
PARALLEL there.  It's not obvious to me that we already do that, but maybe we
do as a side effect of assigning other variables of the same mode to BLKmode
and thus to memory, so it might be that it's not a problem, after all, but I'd
rather have at least a comment in the assert indicating that the intent of that
case is to cover uncoalesced PARALLELs in RESULT_DECLs only.  If we did get
coalescing, we would likely get expander ICEs elsewhere.


More information about the Gcc-bugs mailing list