Commit 65dcb901 by Richard Guenther Committed by Richard Biener

re PR middle-end/45869 (type mismatch in shift expression produces ice with -O3 and -m32)

2010-10-07  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45869
	* tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
	of pointers.

	* gcc.dg/torture/pr45869.c: New testcase.

From-SVN: r165113
parent 7427ba36
2010-10-07 Richard Guenther <rguenther@suse.de>
PR middle-end/45869
* tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
of pointers.
2010-10-07 Alan Modra <amodra@gmail.com>
* config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
2010-10-07 Richard Guenther <rguenther@suse.de>
PR middle-end/45869
* gcc.dg/torture/pr45869.c: New testcase.
2010-10-07 Iain Sandoe <iains@gcc.gnu.org>
* objc.dg/set-not-used-1.m: New
......
/* { dg-do compile } */
char *
foo (unsigned int count, void **list)
{
char *minaddr = (char *) list[0];
unsigned int i; /* NOTE: change of type to "int" eliminates the ICE */
for (i = 1; i < count; i++)
{
char *addr = (char *) list[i];
if (addr < minaddr)
minaddr = addr;
}
return minaddr;
}
......@@ -3422,6 +3422,7 @@ verify_gimple_assign_binary (gimple stmt)
{
if (TREE_CODE (rhs1_type) != VECTOR_TYPE
|| !(INTEGRAL_TYPE_P (TREE_TYPE (rhs1_type))
|| POINTER_TYPE_P (TREE_TYPE (rhs1_type))
|| FIXED_POINT_TYPE_P (TREE_TYPE (rhs1_type))
|| SCALAR_FLOAT_TYPE_P (TREE_TYPE (rhs1_type)))
|| (!INTEGRAL_TYPE_P (rhs2_type)
......@@ -3435,9 +3436,9 @@ verify_gimple_assign_binary (gimple stmt)
debug_generic_expr (rhs2_type);
return true;
}
/* For shifting a vector of floating point components we
/* For shifting a vector of non-integral components we
only allow shifting by a constant multiple of the element size. */
if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (rhs1_type))
if (!INTEGRAL_TYPE_P (TREE_TYPE (rhs1_type))
&& (TREE_CODE (rhs2) != INTEGER_CST
|| !div_if_zero_remainder (EXACT_DIV_EXPR, rhs2,
TYPE_SIZE (TREE_TYPE (rhs1_type)))))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment