http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56384



--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-19 
10:09:13 UTC ---

Ok, so the issue here is that we value-number



unsigned char b_20 = PHI <b_15(3), b_15(10), 1(7), 5(9)>

int a.4_25 = PHI <a.4_16(3), a.4_16(10), 1(7), 5(9)>



the same as value-numbers from BB 3 and BB 10 are still VN_TOP, so



static int

vn_phi_eq (const void *p1, const void *p2)

{

...

      /* If the PHI nodes do not have compatible types

         they are not the same.  */

      if (!types_compatible_p (TREE_TYPE (vp1->phiargs[0]),

                               TREE_TYPE (vp2->phiargs[0])))

        return false;



compares "garbage".



I have a patch.

Reply via email to