2011-01-02 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/47140
+ * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
+ TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
+ to bit_value_binop.
+
PR rtl-optimization/47028
* cfgexpand.c (gimple_expand_cfg): Insert entry edge
insertions after parm_birth_insn instead of at the beginning
2011-01-02 Jakub Jelinek <jakub@redhat.com>
+ PR tree-optimization/47140
+ * gcc.c-torture/compile/pr47140.c: New test.
+
PR rtl-optimization/47028
* gcc.dg/pr47028.c: New test.
--- /dev/null
+/* PR tree-optimization/47140 */
+
+static inline int
+foo (int x, short y)
+{
+ return y == 0 ? x : x + y;
+}
+
+static inline unsigned short
+bar (unsigned short x, unsigned char y)
+{
+ return x - y;
+}
+
+int w;
+
+int baz (void);
+
+int
+test (void)
+{
+ int i;
+ for (i = 0; i < 50; i++)
+ w += foo ((unsigned char) (1 + baz ()) >= bar (0, 1), 0);
+}
if (INTEGRAL_TYPE_P (TREE_TYPE (rhs1))
|| POINTER_TYPE_P (TREE_TYPE (rhs1)))
{
+ tree lhs = gimple_assign_lhs (stmt);
tree rhs2 = gimple_assign_rhs2 (stmt);
val = bit_value_binop (subcode,
- TREE_TYPE (rhs1), rhs1, rhs2);
+ TREE_TYPE (lhs), rhs1, rhs2);
}
break;