diff options
author | Jeff Law <law@redhat.com> | 2016-11-20 22:29:36 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2016-11-20 22:29:36 -0700 |
commit | fe12d76c19ad3eef5a4ac555a519bc14f09d7326 (patch) | |
tree | 0b5b40035eedaf847288f81a5c5be3bd4847c5e3 /gcc/reload.c | |
parent | 29c90a3c28a7917023477648f0c88aa273e7510e (diff) | |
download | gcc-fe12d76c19ad3eef5a4ac555a519bc14f09d7326.zip gcc-fe12d76c19ad3eef5a4ac555a519bc14f09d7326.tar.gz gcc-fe12d76c19ad3eef5a4ac555a519bc14f09d7326.tar.bz2 |
re PR target/48551 (Following source code crashes the c++ compiler on coldfire platform.)
2016-11-20 Jeff Law <law@redhat.com>
PR target/48551
* reload.h (struct target_reload): Make x_double_reg_address_ok
be per-mode rather.
* reload.c (find_reloads_address): Check if double_reg_address_ok
is true for the mode of the memory reference.
* reload1.c (init_reload): Initialize double_reg_address_ok for
each mode.
PR target/48551
* gcc.target/m68k/pr48551.c: New test.
From-SVN: r242648
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 7d16817..4cba220 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -5090,7 +5090,7 @@ find_reloads_address (machine_mode mode, rtx *memrefloc, rtx ad, loc = &XEXP (*loc, 0); } - if (double_reg_address_ok + if (double_reg_address_ok[mode] && regno_ok_for_base_p (REGNO (XEXP (ad, 0)), mode, as, PLUS, CONST_INT)) { |