mirror of git://gcc.gnu.org/git/gcc.git
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>
|
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.
|
||||||
|
|
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);
|
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;
|
||||||
|
|
Loading…
Reference in New Issue