[Bug target/51106] [4.5/4.6/4.7 Regression] ICE in move_insn, at haifa-sched.c:2314
abel at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 19 09:35:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51106
Andrey Belevantsev <abel at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |abel at gcc dot gnu.org,
| |jakub at gcc dot gnu.org
--- Comment #2 from Andrey Belevantsev <abel at gcc dot gnu.org> 2012-01-19 09:24:27 UTC ---
Well, the instantiate virtual regs pass just deletes the asm as having
impossible constraints and does not clean up cfg after itself. As the asm is
actually a jump in this case, everything blows up.
The trivial patch below makes this work for -O[012]. Any other places in
function.c need patching up? Jakub, what do you think?
diff --git a/gcc/function.c b/gcc/function.c
index fcb79f5..94e51f4 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -1737,7 +1737,7 @@ instantiate_virtual_regs_in_insn (rtx insn)
if (!check_asm_operands (PATTERN (insn)))
{
error_for_asm (insn, "impossible constraint in %<asm%>");
- delete_insn (insn);
+ delete_insn_and_edges (insn);
}
}
else
More information about the Gcc-bugs
mailing list