From ba03a3508bfbf83b6bbd07f47bc1573ab6f6f89f Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Wed, 18 Jun 2008 19:16:05 +0200 Subject: re PR rtl-optimization/35604 (Label references are not updated after edge insertion) PR rtl-optimization/35604 * jump.c (redirect_exp_1): Skip the condition of an IF_THEN_ELSE. We only want to change jump destinations, not eventual label comparisons. From-SVN: r136899 --- gcc/jump.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'gcc/jump.c') diff --git a/gcc/jump.c b/gcc/jump.c index 1aa0c6d..23d183e 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -1327,6 +1327,15 @@ redirect_exp_1 (rtx *loc, rtx olabel, rtx nlabel, rtx insn) return; } + if (code == IF_THEN_ELSE) + { + /* Skip the condition of an IF_THEN_ELSE. We only want to + change jump destinations, not eventual label comparisons. */ + redirect_exp_1 (&XEXP (x, 1), olabel, nlabel, insn); + redirect_exp_1 (&XEXP (x, 2), olabel, nlabel, insn); + return; + } + fmt = GET_RTX_FORMAT (code); for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) { -- cgit v1.1