On Thu, Mar 19, 2015 at 01:45:19PM +0000, Kyrill Tkachov wrote: > Bootstrapped and tested on arm, x86, aarch64. > This ICE doesn't happen with 4.9 and 4.8 so it's only a regression for GCC > 5. > The currently ICE'ins testcase passes now, so no new testcase is added.
Not an expert on this, but it looks wrong to me. emit_move_insn is used a few lines above, but only for the general_operand case, so it seems it was very much intentional that way. I bet emit_move_insn isn't prepared to handle arbitrary RTL expressions, so the general_operand check makes sense for it. As process_insert_insn supposed can't fail, perhaps something earlier should have figured out it would be invalid? Jakub