Commit b1ab2759 by Chung-Lin Tang Committed by Chung-Lin Tang

re PR rtl-optimization/50496 (ICE in redirect_jump, at jump.c:1497)

2011-11-23  Chung-Lin Tang  <cltang@codesourcery.com>

	PR rtl-optimization/50496
	* jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
	only after epilogue is created. Add comments.

From-SVN: r181664
parent bc6e33a3
2011-11-23 Chung-Lin Tang <cltang@codesourcery.com>
PR rtl-optimization/50496
* jump.c (redirect_jump): Assert fail on nlabel == NULL_RTX
only after epilogue is created. Add comments.
2011-11-22 Richard Henderson <rth@redhat.com> 2011-11-22 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter. * config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.
...@@ -1495,7 +1495,18 @@ redirect_jump (rtx jump, rtx nlabel, int delete_unused) ...@@ -1495,7 +1495,18 @@ redirect_jump (rtx jump, rtx nlabel, int delete_unused)
{ {
rtx olabel = JUMP_LABEL (jump); rtx olabel = JUMP_LABEL (jump);
gcc_assert (nlabel != NULL_RTX); if (!nlabel)
{
/* If there is no label, we are asked to redirect to the EXIT block.
When before the epilogue is emitted, return/simple_return cannot be
created so we return 0 immediately. After the epilogue is emitted,
we always expect a label, either a non-null label, or a
return/simple_return RTX. */
if (!epilogue_completed)
return 0;
gcc_unreachable ();
}
if (nlabel == olabel) if (nlabel == olabel)
return 1; return 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment