diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-03-20 12:26:42 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-03-20 12:26:42 +0100 |
commit | a5b821e448e6debe73e1154128b4ea6f7f73fbdd (patch) | |
tree | 6e4940308ba8d348193ea382c21c257c79a66ab8 /gcc/lra-constraints.c | |
parent | 7f129d6f1619d81cac4dd0ac58071442e99466ea (diff) | |
download | gcc-a5b821e448e6debe73e1154128b4ea6f7f73fbdd.zip gcc-a5b821e448e6debe73e1154128b4ea6f7f73fbdd.tar.gz gcc-a5b821e448e6debe73e1154128b4ea6f7f73fbdd.tar.bz2 |
re PR target/89752 (ICE in emit_move_insn, at expr.c:3723)
PR target/89752
* lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
update this_alternative nor this_alternative_set.
* g++.target/aarch64/aarch64.exp: New file.
* g++.target/aarch64/pr89752.C: New test.
From-SVN: r269819
Diffstat (limited to 'gcc/lra-constraints.c')
-rw-r--r-- | gcc/lra-constraints.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index ccca130..cba87eb 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -2350,6 +2350,8 @@ process_alt_operands (int only_alternative) break; reg: + if (mode == BLKmode) + break; this_alternative = reg_class_subunion[this_alternative][cl]; IOR_HARD_REG_SET (this_alternative_set, reg_class_contents[cl]); @@ -2360,8 +2362,6 @@ process_alt_operands (int only_alternative) IOR_HARD_REG_SET (this_costly_alternative_set, reg_class_contents[cl]); } - if (mode == BLKmode) - break; winreg = true; if (REG_P (op)) { |