aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@gcc.gnu.org>2011-06-29 16:19:08 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2011-06-29 16:19:08 +0000
commitde95483d1e787c73bf1c84e47254bdab4f839762 (patch)
tree9507c4b7ce3490e5dad6d22f43b158015c68c49b /gcc/reload.c
parent931050d044409ae6f3e18ac2fe4128e1e2bee11b (diff)
downloadgcc-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/reload.c')
-rw-r--r--gcc/reload.c6
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)