[Bug target/14899] [3.5 Regression] wrong code due to change in compatibility rules for vector types

fjahanian at apple dot com gcc-bugzilla@gcc.gnu.org
Fri Apr 9 18:01:00 GMT 2004


------- Additional Comments From fjahanian at apple dot com  2004-04-09 18:01 -------
I have tried following patch and it seems to work in my very limited testing. 

Index: c-typeck.c
============================================================
=======
RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
retrieving revision 1.196.2.43.2.3
diff -c -p -r1.196.2.43.2.3 c-typeck.c
*** c-typeck.c  7 Apr 2004 22:09:14 -0000       1.196.2.43.2.3
--- c-typeck.c  9 Apr 2004 18:00:03 -0000
*************** comptypes (tree type1, tree type2, int f
*** 577,583 ****
        /* The target might allow certain vector types to be compatible.  */
        val = targetm.vector_opaque_p (t1)
        || targetm.vector_opaque_p (t2)
!       || TYPE_MODE (t1) == TYPE_MODE (t2);
        break;
  
      default:
--- 577,584 ----
        /* The target might allow certain vector types to be compatible.  */
        val = targetm.vector_opaque_p (t1)
        || targetm.vector_opaque_p (t2)
!       || (TYPE_MODE (t1) == TYPE_MODE (t2) 
!           && TREE_UNSIGNED(t1) == TREE_UNSIGNED(t2));
        break;
  
      default:


-- 


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



More information about the Gcc-bugs mailing list