aboutsummaryrefslogtreecommitdiff
path: root/gcc/mode-switching.c
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2012-11-06 10:16:34 +0100
committerKaz Kojima <kkojima@gcc.gnu.org>2012-11-06 09:16:34 +0000
commit11e185566b2122be2da3d71878286aeec0c71f10 (patch)
treeae46f24c4d0df5da48dc73221e22aee42706373c /gcc/mode-switching.c
parent3020bfd1c22e6fcfbb06327d4d72b04cefa75164 (diff)
downloadgcc-11e185566b2122be2da3d71878286aeec0c71f10.zip
gcc-11e185566b2122be2da3d71878286aeec0c71f10.tar.gz
gcc-11e185566b2122be2da3d71878286aeec0c71f10.tar.bz2
re PR target/41993 ([sh] ICE in create_pre_exit, at mode-switching.c:399)
PR target/41993 * mode-switching.c (create_pre_exit): Set return_copy to last_insn when copy_start is a pseudo reg. Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org> From-SVN: r193210
Diffstat (limited to 'gcc/mode-switching.c')
-rw-r--r--gcc/mode-switching.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/mode-switching.c b/gcc/mode-switching.c
index 2f7455a..386f8d1 100644
--- a/gcc/mode-switching.c
+++ b/gcc/mode-switching.c
@@ -324,7 +324,10 @@ create_pre_exit (int n_entities, int *entity_map, const int *num_modes)
else
break;
if (copy_start >= FIRST_PSEUDO_REGISTER)
- break;
+ {
+ last_insn = return_copy;
+ continue;
+ }
copy_num
= hard_regno_nregs[copy_start][GET_MODE (copy_reg)];