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
This commit is contained in:
Chung-Lin Tang 2011-11-23 13:22:30 +00:00 committed by Chung-Lin Tang
parent bc6e33a387
commit b1ab2759ab
2 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,9 @@
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>
* config/ia64/ia64.c (ia64_expand_atomic_op): Add model parameter.

View File

@ -1495,7 +1495,18 @@ redirect_jump (rtx jump, rtx nlabel, int delete_unused)
{
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)
return 1;