From c98718390719e6c7e7ded4b6c74abb72cab47022 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 28 Jul 2005 16:27:22 +0000 Subject: [PATCH] re PR c/20187 (wrong code for ((unsigned char)(unsigned long long)((a?a:1)&(a*b)))?0:1)) PR c/20187 * gcc.c-torture/execute/pr20187-1.c: New test. From-SVN: r102490 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.c-torture/execute/pr20187-1.c | 15 +++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 gcc/testsuite/gcc.c-torture/execute/pr20187-1.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d2382f357ec..b52b92e8137 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-07-28 Richard Sandiford + + PR c/20187 + * gcc.c-torture/execute/pr20187-1.c: New test. + 2005-07-28 Jeff Law * gcc.dg/tree-ssa/vrp17.c: Update expected output. diff --git a/gcc/testsuite/gcc.c-torture/execute/pr20187-1.c b/gcc/testsuite/gcc.c-torture/execute/pr20187-1.c new file mode 100644 index 00000000000..a1f0a091cf6 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/pr20187-1.c @@ -0,0 +1,15 @@ +int a = 0x101; +int b = 0x100; + +int +test (void) +{ + return (((unsigned char) (unsigned long long) ((a ? a : 1) & (a * b))) + ? 0 : 1); +} + +int +main (void) +{ + return 1 - test (); +} -- 2.30.2