X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Frtlanal.c;h=804d6c88e5c43e69e7bf92425b67e208019e5728;hp=d9e60d3b1ab7c0cd5139fbab3b367963bfd9b18f;hb=c8707f088b4d233f1d672a367bba72ef28785f7f;hpb=200ad982dd4e3f375f6469d1f09ba8f3a69e352e diff --git a/gcc/rtlanal.c b/gcc/rtlanal.c index d9e60d3b1ab..804d6c88e5c 100644 --- a/gcc/rtlanal.c +++ b/gcc/rtlanal.c @@ -2989,16 +2989,15 @@ loc_mentioned_in_p (rtx *loc, const_rtx in) fmt = GET_RTX_FORMAT (code); for (i = GET_RTX_LENGTH (code) - 1; i >= 0; i--) { - if (loc == &in->u.fld[i].rt_rtx) - return 1; if (fmt[i] == 'e') { - if (loc_mentioned_in_p (loc, XEXP (in, i))) + if (loc == &XEXP (in, i) || loc_mentioned_in_p (loc, XEXP (in, i))) return 1; } else if (fmt[i] == 'E') for (j = XVECLEN (in, i) - 1; j >= 0; j--) - if (loc_mentioned_in_p (loc, XVECEXP (in, i, j))) + if (loc == &XVECEXP (in, i, j) + || loc_mentioned_in_p (loc, XVECEXP (in, i, j))) return 1; } return 0;