aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard@codesourcery.com>2005-07-28 16:27:22 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2005-07-28 16:27:22 +0000
commitc98718390719e6c7e7ded4b6c74abb72cab47022 (patch)
tree95ae9f6e0a24112b46a2c2d2055507846aacfd28 /gcc
parentd579f20bb15e25f8f2038e5bd63bcab24f8df969 (diff)
downloadgcc-c98718390719e6c7e7ded4b6c74abb72cab47022.zip
gcc-c98718390719e6c7e7ded4b6c74abb72cab47022.tar.gz
gcc-c98718390719e6c7e7ded4b6c74abb72cab47022.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/pr20187-1.c15
2 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d2382f3..b52b92e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-28 Richard Sandiford <richard@codesourcery.com>
+
+ PR c/20187
+ * gcc.c-torture/execute/pr20187-1.c: New test.
+
2005-07-28 Jeff Law <law@redhat.com>
* 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 0000000..a1f0a09
--- /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 ();
+}