diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2012-11-26 18:08:44 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2012-11-26 18:08:44 +0000 |
commit | f421c426a24f8e82c792bb4cdfbcd2f968cb83c2 (patch) | |
tree | 6391367e60c221713f63b1042f3b20727623b072 /gcc/lra-constraints.c | |
parent | 119103ca7bcd576fdf7b53b21dcb598b8915ad5a (diff) | |
download | gcc-f421c426a24f8e82c792bb4cdfbcd2f968cb83c2.zip gcc-f421c426a24f8e82c792bb4cdfbcd2f968cb83c2.tar.gz gcc-f421c426a24f8e82c792bb4cdfbcd2f968cb83c2.tar.bz2 |
re PR target/55277 (ICE in assign_by_spills, at lra-assigns.c:1217)
2012-11-26 Vladimir Makarov <vmakarov@redhat.com>
PR target/55277
* gcc.target/i386/pr55227.c: New test.
2012-11-26 Vladimir Makarov <vmakarov@redhat.com>
PR target/55277
* lra-constraints.c (in_class_p): Check reg class contents too.
From-SVN: r193824
Diffstat (limited to 'gcc/lra-constraints.c')
-rw-r--r-- | gcc/lra-constraints.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index e381c70..d90ac02 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -293,7 +293,9 @@ in_class_p (rtx reg, enum reg_class cl, enum reg_class *new_class) if (nregs == 1) return true; for (j = 0; j < nregs; j++) - if (TEST_HARD_REG_BIT (lra_no_alloc_regs, hard_regno + j)) + if (TEST_HARD_REG_BIT (lra_no_alloc_regs, hard_regno + j) + || ! TEST_HARD_REG_BIT (reg_class_contents[common_class], + hard_regno + j)) break; if (j >= nregs) return true; |