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:
parent
bc6e33a387
commit
b1ab2759ab
@ -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.
|
||||
|
13
gcc/jump.c
13
gcc/jump.c
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user