JUMP_LABLE() must be defined after optimization completed. In this case,
it is doing optimization, and is almost finished, so it is no chances to
set JUMP_LABLE() next. The related issue is Bug 65803.

2015-06-20  Chen Gang  <gang.chen.5...@gmail.com>

        * config/bfin/bfin.c (hwloop_optimize): Set JUMP_LABEL() after
        emit jump_insn.
---
 gcc/config/bfin/bfin.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index 3b4b54e..23c2d51 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -3775,7 +3775,10 @@ hwloop_optimize (hwloop_info loop)
        }
       else
        {
-         emit_jump_insn (gen_jump (label));
+         rtx_insn * ret = emit_jump_insn (gen_jump (label));
+
+         JUMP_LABEL(ret) = label;
+         LABEL_NUSES (label)++;
          seq_end = emit_barrier ();
        }
     }
-- 
1.9.3

Reply via email to