diff options
author | Ulrich Weigand <uweigand@gcc.gnu.org> | 2011-06-29 16:19:08 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2011-06-29 16:19:08 +0000 |
commit | de95483d1e787c73bf1c84e47254bdab4f839762 (patch) | |
tree | 9507c4b7ce3490e5dad6d22f43b158015c68c49b /gcc | |
parent | 931050d044409ae6f3e18ac2fe4128e1e2bee11b (diff) | |
download | gcc-de95483d1e787c73bf1c84e47254bdab4f839762.zip gcc-de95483d1e787c73bf1c84e47254bdab4f839762.tar.gz gcc-de95483d1e787c73bf1c84e47254bdab4f839762.tar.bz2 |
re PR rtl-optimization/49114 ([x32] Reload failed to handle (set reg:X (plus:X (subreg:X (reg:Y) 0) (const_int))))
PR rtl-optimization/49114
* reload.c (push_reload): Define in_subreg_loc and out_subreg_loc
only if LIMIT_RELOAD_CLASS to avoid -Werror build breaks.
From-SVN: r175652
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reload.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index fa31454..2e9a891 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -923,7 +923,9 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc, int i; int dont_share = 0; int dont_remove_subreg = 0; +#ifdef LIMIT_RELOAD_CLASS rtx *in_subreg_loc = 0, *out_subreg_loc = 0; +#endif int secondary_in_reload = -1, secondary_out_reload = -1; enum insn_code secondary_in_icode = CODE_FOR_nothing; enum insn_code secondary_out_icode = CODE_FOR_nothing; @@ -1068,7 +1070,9 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc, #endif )) { +#ifdef LIMIT_RELOAD_CLASS in_subreg_loc = inloc; +#endif inloc = &SUBREG_REG (in); in = *inloc; #if ! defined (LOAD_EXTEND_OP) && ! defined (WORD_REGISTER_OPERATIONS) @@ -1163,7 +1167,9 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc, #endif )) { +#ifdef LIMIT_RELOAD_CLASS out_subreg_loc = outloc; +#endif outloc = &SUBREG_REG (out); out = *outloc; #if ! defined (LOAD_EXTEND_OP) && ! defined (WORD_REGISTER_OPERATIONS) |