Commit 5c6ef9be by Eric Botcazou Committed by Eric Botcazou

re PR rtl-optimization/13060 ([g77] ICE in fixup_var_refs_1, at function.c:1947…

re PR rtl-optimization/13060 ([g77] ICE in fixup_var_refs_1, at function.c:1947 on correct code with "-O2 -fno-force-mem")

	PR optimization/13060
	* function.c (fixup_var_refs_1) [SUBREG]: Recognize even if a
	replacement already exists.  Fix again the whole insn if that fails.

From-SVN: r74386
parent 57616df1
2003-12-07 Eric Botcazou <ebotcazou@libertysurf.fr>
PR optimization/13060
* function.c (fixup_var_refs_1) [SUBREG]: Recognize even if a
replacement already exists. Fix again the whole insn if that fails.
2003-12-06 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.c (macho_branch_islands): Use
......
......@@ -2092,7 +2092,23 @@ fixup_var_refs_1 (rtx var, enum machine_mode promoted_mode, rtx *loc, rtx insn,
replacement = find_fixup_replacement (replacements, x);
if (replacement->new)
{
enum machine_mode mode = GET_MODE (x);
*loc = replacement->new;
/* Careful! We may have just replaced a SUBREG by a MEM, which
means that the insn may have become invalid again. We can't
in this case make a new replacement since we already have one
and we must deal with MATCH_DUPs. */
if (GET_CODE (replacement->new) == MEM)
{
INSN_CODE (insn) = -1;
if (recog_memoized (insn) >= 0)
return;
fixup_var_refs_1 (replacement->new, mode, &PATTERN (insn),
insn, replacements, no_share);
}
return;
}
......
2003-12-07 Eric Botcazou <ebotcazou@libertysurf.fr>
* g77.f-torture/compile/13060.f: New test.
2003-12-06 Mark Mitchell <mark@codesourcery.com>
PR c++/13323
......
subroutine geo2()
implicit none
integer ms,n,ne(2)
ne(1) = 1
ne(2) = 2
ms = 1
call call_me(ne(1)*ne(1))
n = ne(ms)
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment