Coding eror in rtlanal.c:reg_set_last() (GCC 3.4 2004/01/21 snapshot).

Anmol Paralkar aparalka@cisco.com
Fri Apr 16 20:19:00 GMT 2004


Hello,

 In rtx reg_set_last (rtx x, rtx insn), we obtain a SET/CLOBBER of 'x' via:

 set = set_of (x, insn);

 But once we obtain 'set', we need to compute the value 'x' was assigned by:

 last_value = SET_SRC (set);

 (Not as is the case currently: last_value = SET_SRC (x);)

*** 1617,1623 ****
            rtx last_value;
            if (GET_CODE (set) != SET || SET_DEST (set) != x)
              return 0;
!           last_value = SET_SRC (x);
            if (CONSTANT_P (last_value)
                || ((GET_CODE (last_value) == REG
                     || GET_CODE (last_value) == SUBREG)
--- 1617,1623 ----
            rtx last_value;
            if (GET_CODE (set) != SET || SET_DEST (set) != x)
              return 0;
!           last_value = SET_SRC (set);
            if (CONSTANT_P (last_value)
                || ((GET_CODE (last_value) == REG
                     || GET_CODE (last_value) == SUBREG)

 ...else a seg-fault results on use of this function.

 Kindly validate. Request you to fix.

Thanks & Regards,
Anmol P. Paralkar



More information about the Gcc-bugs mailing list