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

jsm at polyomino dot org dot uk gcc-bugzilla@gcc.gnu.org
Sun Apr 11 14:51:00 GMT 2004


------- Additional Comments From jsm at polyomino dot org dot uk  2004-04-11 11:53 -------
Subject: Re:  [3.5 Regression] wrong code due to change in
 compatibility rules for vector types

On Sun, 11 Apr 2004, bonzini at gnu dot org wrote:

> The bug is __builtin_types_compatible_p being ill-named because it is actually 
> __builtin_same_type_p (it just uses comptypes).  __builtin_types_compatible_p 
> (int, unsigned int) is zero, so the problem is the name of the builtin.  And 

It *does* test compatibility.  int and unsigned int are not compatible.  
int[10] and int[] are compatible but are not the same type.  If vector int
and vector unsigned int are meant to be compatible (for example, you can
freely assign between vector int ** and vector unsigned int **), then it's
a matter for the language specifications for vector extensions to specify
clearly what the compatibility rules are, and for GCC then to implement
that.  The documentation of __builtin_types_compatible_p gives examples.



-- 


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



More information about the Gcc-bugs mailing list