re PR middle-end/43475 (ICE in form_sum, at reload.c:5348)
PR middle-end/43475 * recog.c (validate_replace_rtx_group): Replace also in REG_EQUAL and REG_EQUIV notes. testsuite/ * gfortran.dg/pr43475.f90: New testcase. From-SVN: r157640
This commit is contained in:
parent
80f046cced
commit
047550e9f6
4 changed files with 32 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
|||
2010-03-22 Michael Matz <matz@suse.de>
|
||||
|
||||
PR middle-end/43475
|
||||
* recog.c (validate_replace_rtx_group): Replace also in
|
||||
REG_EQUAL and REG_EQUIV notes.
|
||||
|
||||
2010-03-22 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/43390
|
||||
|
|
|
@ -787,12 +787,18 @@ validate_replace_rtx_part_nosimplify (rtx from, rtx to, rtx *where,
|
|||
|
||||
}
|
||||
|
||||
/* Try replacing every occurrence of FROM in INSN with TO. */
|
||||
/* Try replacing every occurrence of FROM in INSN with TO. This also
|
||||
will replace in REG_EQUAL and REG_EQUIV notes. */
|
||||
|
||||
void
|
||||
validate_replace_rtx_group (rtx from, rtx to, rtx insn)
|
||||
{
|
||||
rtx note;
|
||||
validate_replace_rtx_1 (&PATTERN (insn), from, to, insn, true);
|
||||
for (note = REG_NOTES (insn); note; note = XEXP (note, 1))
|
||||
if (REG_NOTE_KIND (note) == REG_EQUAL
|
||||
|| REG_NOTE_KIND (note) == REG_EQUIV)
|
||||
validate_replace_rtx_1 (&XEXP (note, 0), from, to, insn, true);
|
||||
}
|
||||
|
||||
/* Function called by note_uses to replace used subexpressions. */
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2010-03-22 Michael Matz <matz@suse.de>
|
||||
|
||||
PR middle-end/43475
|
||||
* gfortran.dg/pr43475.f90: New testcase.
|
||||
|
||||
2010-03-22 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/43390
|
||||
|
|
14
gcc/testsuite/gfortran.dg/pr43475.f90
Normal file
14
gcc/testsuite/gfortran.dg/pr43475.f90
Normal file
|
@ -0,0 +1,14 @@
|
|||
! PR middle-end/43475
|
||||
! { dg-do compile }
|
||||
! { dg-options "-O2" }
|
||||
subroutine ss(w)
|
||||
implicit none
|
||||
integer :: w(:)
|
||||
integer :: b,c,d
|
||||
b = w(8)
|
||||
c = 5
|
||||
d = 3
|
||||
call s1(c)
|
||||
call s2(b+c)
|
||||
call s3(w(b))
|
||||
end subroutine ss
|
Loading…
Add table
Reference in a new issue