From 5a226e0af1d34600e38f02e3e84485db3f96b56c Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 20 Feb 2012 13:19:47 +0100 Subject: re PR tree-optimization/52286 (wrong code bug) PR tree-optimization/52286 * fold-const.c (fold_binary_loc): For (X & C1) | C2 optimization use double_int_to_tree instead of build_int_cst_wide, rewrite to use double_int vars. * gcc.c-torture/execute/pr52286.c: New test. From-SVN: r184391 --- gcc/testsuite/gcc.c-torture/execute/pr52286.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr52286.c (limited to 'gcc/testsuite/gcc.c-torture') diff --git a/gcc/testsuite/gcc.c-torture/execute/pr52286.c b/gcc/testsuite/gcc.c-torture/execute/pr52286.c new file mode 100644 index 0000000..003406d --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr52286.c @@ -0,0 +1,14 @@ +/* PR tree-optimization/52286 */ + +extern void abort (void); + +int +main () +{ + int a, b; + asm ("" : "=r" (a) : "0" (0)); + b = (~a | 1) & -2038094497; + if (b >= 0) + abort (); + return 0; +} -- cgit v1.1