This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/14899] [3.5 Regression] wrong code due to change in compatibility rules for vector types
- From: "jsm at polyomino dot org dot uk" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 11 Apr 2004 11:53:45 -0000
- Subject: [Bug target/14899] [3.5 Regression] wrong code due to change in compatibility rules for vector types
- References: <20040409073632.14899.bonzini@gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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