From beb4ed48a3fb8d4a63fb16ad73eaea76a2d846c1 Mon Sep 17 00:00:00 2001 From: law Date: Sun, 25 Oct 1998 12:13:14 +0000 Subject: [PATCH] =?utf8?q?=EF=BF=BD=20=20=20=20=20=20=20=20=20*=20reload.c?= =?utf8?q?=20(push=5Freload):=20When=20merging=20reloads,=20make=20sure=20?= =?utf8?q?=20=20=20=20=20=20=20=20that=20reload=5Fin=5Freg=20and=20reload?= =?utf8?q?=5Fin=20are=20from=20the=20same=20reload=20in=20=20=20=20=20=20?= =?utf8?q?=20=20=20all=20cases.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@23303 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/reload.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/reload.c b/gcc/reload.c index a7dba557070..b6a2ff95916 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -1320,6 +1320,7 @@ push_reload (in, out, inloc, outloc, class, reload_outmode[i] = outmode; if (in != 0) { + rtx in_reg = inloc ? *inloc : 0; /* If we merge reloads for two distinct rtl expressions that are identical in content, there might be duplicate address reloads. Remove the extra set now, so that if we later find @@ -1333,12 +1334,13 @@ push_reload (in, out, inloc, outloc, class, { remove_address_replacements (in); in = reload_in[i]; + in_reg = reload_in_reg[i]; } else remove_address_replacements (reload_in[i]); } reload_in[i] = in; - reload_in_reg[i] = inloc ? *inloc : 0; + reload_in_reg[i] = in_reg; } if (out != 0) { -- 2.11.0