backport: re PR target/35225 (gcc segfaults when building GTK+ code with -O2 -fPIC for SH4)

Backport from mainline:
	PR target/35225
	* config/sh/sh.c (find_barrier): Don't go past 'from' argument.

From-SVN: r133066
This commit is contained in:
Kaz Kojima
2008-03-09 23:39:51 +00:00
parent b9baa3ce05
commit d6925f1b1d
2 changed files with 9 additions and 1 deletions

View File

@@ -1,3 +1,9 @@
2008-03-09 Kaz Kojima <kkojima@gcc.gnu.org>
Backport from mainline:
PR target/35225
* config/sh/sh.c (find_barrier): Don't go past 'from' argument.
2008-03-07 Joseph Myers <joseph@codesourcery.com>
* doc/include/texinfo.tex: Update to version 2008-03-07.10.

View File

@@ -3530,6 +3530,7 @@ find_barrier (int num_mova, rtx mova, rtx from)
rtx barrier_before_mova = 0, found_barrier = 0, good_barrier = 0;
int si_limit;
int hi_limit;
rtx orig = from;
/* For HImode: range is 510, add 4 because pc counts from address of
second instruction after this one, subtract 2 for the jump instruction
@@ -3753,7 +3754,8 @@ find_barrier (int num_mova, rtx mova, rtx from)
/* If we exceeded the range, then we must back up over the last
instruction we looked at. Otherwise, we just need to undo the
NEXT_INSN at the end of the loop. */
if (count_hi > hi_limit || count_si > si_limit)
if (PREV_INSN (from) != orig
&& (count_hi > hi_limit || count_si > si_limit))
from = PREV_INSN (PREV_INSN (from));
else
from = PREV_INSN (from);