* tree-vrp.c (simplify_cond_using_ranges): Verify the constant
operand of the condition will bit into the new type when eliminating
a cast feeding a condition.
PR tree-optimization/57411
* gcc.c-torture/execute/pr57144.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198582
138bc75d-0d04-0410-961f-
82ee72b054a4
+2013-05-03 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/57411
+ * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
+ operand of the condition will bit into the new type when eliminating
+ a cast feeding a condition.
+
2013-05-03 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/57130
+2013-05-02 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/57411
+ * gcc.c-torture/execute/pr57144.c: New test.
+
2013-05-03 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/57130
--- /dev/null
+extern void abort (void);
+extern void exit (int);
+
+void __attribute__ ((noinline))
+foo(int a)
+{
+ int z = a > 0 ? a : -a;
+ long long x = z;
+ if (x > 0x100000000LL)
+ abort ();
+ else
+ exit (0);
+}
+
+int
+main()
+{
+ foo (1);
+}
if (range_int_cst_p (vr)
&& range_fits_type_p (vr,
TYPE_PRECISION (TREE_TYPE (op0)),
- TYPE_UNSIGNED (TREE_TYPE (op0))))
+ TYPE_UNSIGNED (TREE_TYPE (op0)))
+ && int_fits_type_p (op1, TREE_TYPE (innerop)))
{
tree newconst = fold_convert (TREE_TYPE (innerop), op1);
gimple_cond_set_lhs (stmt, innerop);