2008-02-27 Richard Guenther <rguenther@suse.de>
PR middle-end/25290
* fold-const.c (fold_unary): Return the correct argument,
converted to the result type.
* gcc.c-torture/execute/pr35390.c: New testcase.
From-SVN: r132710
+2008-02-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/25290
+ * fold-const.c (fold_unary): Return the correct argument,
+ converted to the result type.
+
2008-02-27 Richard Guenther <rguenther@suse.de>
PR middle-end/34971
if (TREE_CODE (arg0) == INTEGER_CST)
return fold_not_const (arg0, type);
else if (TREE_CODE (arg0) == BIT_NOT_EXPR)
- return TREE_OPERAND (op0, 0);
+ return fold_convert (type, TREE_OPERAND (arg0, 0));
/* Convert ~ (-A) to A - 1. */
else if (INTEGRAL_TYPE_P (type) && TREE_CODE (arg0) == NEGATE_EXPR)
return fold_build2 (MINUS_EXPR, type,
+2008-02-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/25290
+ * gcc.c-torture/execute/pr35390.c: New testcase.
+
2008-02-27 Samuel Tardieu <sam@rfc1149.net>
PR ada/22255
--- /dev/null
+extern void abort (void);
+
+unsigned int foo (int n)
+{
+ return ~((unsigned int)~n);
+}
+
+int main()
+{
+ if (foo(0) != 0)
+ abort ();
+ return 0;
+}