c-common.c (vector_types_convertible_p): Treat opaque types as always convertible if they have the same size...
* c-common.c (vector_types_convertible_p): Treat opaque types as always convertible if they have the same size, but not otherwise. From-SVN: r120688
This commit is contained in:
parent
6e63e24060
commit
14e765da4a
2 changed files with 17 additions and 8 deletions
|
@ -1,3 +1,8 @@
|
|||
2007-01-11 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* c-common.c (vector_types_convertible_p): Treat opaque types as
|
||||
always convertible if they have the same size, but not otherwise.
|
||||
|
||||
2007-01-11 Steven Bosscher <steven@gcc.gnu.org>
|
||||
|
||||
* ifcvt.c (struct noce_if_info): Add comments to the fields.
|
||||
|
|
|
@ -1091,14 +1091,18 @@ bool
|
|||
vector_types_convertible_p (tree t1, tree t2, bool emit_lax_note)
|
||||
{
|
||||
static bool emitted_lax_note = false;
|
||||
bool convertible_lax =
|
||||
targetm.vector_opaque_p (t1)
|
||||
|| targetm.vector_opaque_p (t2)
|
||||
|| (tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2))
|
||||
&& (TREE_CODE (TREE_TYPE (t1)) != REAL_TYPE ||
|
||||
TYPE_PRECISION (t1) == TYPE_PRECISION (t2))
|
||||
&& INTEGRAL_TYPE_P (TREE_TYPE (t1))
|
||||
== INTEGRAL_TYPE_P (TREE_TYPE (t2)));
|
||||
bool convertible_lax;
|
||||
|
||||
if ((targetm.vector_opaque_p (t1) || targetm.vector_opaque_p (t2))
|
||||
&& tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2)))
|
||||
return true;
|
||||
|
||||
convertible_lax =
|
||||
(tree_int_cst_equal (TYPE_SIZE (t1), TYPE_SIZE (t2))
|
||||
&& (TREE_CODE (TREE_TYPE (t1)) != REAL_TYPE ||
|
||||
TYPE_PRECISION (t1) == TYPE_PRECISION (t2))
|
||||
&& (INTEGRAL_TYPE_P (TREE_TYPE (t1))
|
||||
== INTEGRAL_TYPE_P (TREE_TYPE (t2))));
|
||||
|
||||
if (!convertible_lax || flag_lax_vector_conversions)
|
||||
return convertible_lax;
|
||||
|
|
Loading…
Add table
Reference in a new issue