Commit ca046f7f by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/45059 (error: invalid operands in binary operation,…

re PR tree-optimization/45059 (error: invalid operands in binary operation, leads to ICE: verify_stmts failed)

	PR tree-optimization/45059
	* tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
	type conversions from newop{1,2}.  Assert t is a comparison and
	newop{1,2} after the stripping are gimple vals.

	* gcc.c-torture/compile/pr45059.c: New test.

From-SVN: r163539
parent 46b57af1
2010-08-25 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/45059
* tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
type conversions from newop{1,2}. Assert t is a comparison and
newop{1,2} after the stripping are gimple vals.
2010-08-25 Tejas Belagod <tejas.belagod@arm.com>
* config/arm/iterators.md (VU, SE, V_widen_l): New.
......
2010-08-25 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/45059
* gcc.c-torture/compile/pr45059.c: New test.
2010-08-25 Tejas Belagod <tejas.belagod@arm.com>
* lib/target-supports.exp (check_effective_target_vect_unpack):
......
/* PR tree-optimization/45059 */
typedef unsigned int T;
extern void foo (signed char *, int);
static signed char a;
static T b[1] = { -1 };
static unsigned char c;
static inline short int
bar (short v)
{
c |= a < b[0];
return 0;
}
int
main ()
{
signed char *e = &a;
foo (e, bar (bar (c)));
return 0;
}
......@@ -1314,9 +1314,14 @@ eliminate_redundant_comparison (enum tree_code opcode,
enum tree_code subcode;
tree newop1;
tree newop2;
gcc_assert (COMPARISON_CLASS_P (t));
tmpvar = create_tmp_var (TREE_TYPE (t), NULL);
add_referenced_var (tmpvar);
extract_ops_from_tree (t, &subcode, &newop1, &newop2);
STRIP_USELESS_TYPE_CONVERSION (newop1);
STRIP_USELESS_TYPE_CONVERSION (newop2);
gcc_checking_assert (is_gimple_val (newop1)
&& is_gimple_val (newop2));
sum = build_and_add_sum (tmpvar, newop1, newop2, subcode);
curr->op = gimple_get_lhs (sum);
}
......
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