aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJoern Rennecke <amylaar@gcc.gnu.org>2005-11-25 20:09:21 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2005-11-25 20:09:21 +0000
commitdacfe88f94bf5dc985411435e2e83d66a34efe99 (patch)
treeb1a2a3b0d455aa9c5d3e1adf980951f48cac801e /gcc
parent7abd5009b6bb733af4dca0334c2afab90f32f082 (diff)
downloadgcc-dacfe88f94bf5dc985411435e2e83d66a34efe99.zip
gcc-dacfe88f94bf5dc985411435e2e83d66a34efe99.tar.gz
gcc-dacfe88f94bf5dc985411435e2e83d66a34efe99.tar.bz2
* gcc.dg/20050922-2.c: New test.
From-SVN: r107516
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.dg/20050922-2.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/20050922-2.c b/gcc/testsuite/gcc.dg/20050922-2.c
new file mode 100644
index 0000000..c2974d0
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20050922-2.c
@@ -0,0 +1,33 @@
+/* 20050922-1.c does not trigger the expand_shift rotate bug on sh4-elf, but
+ this does. */
+
+/* { dg-do run } */
+/* { dg-options "-O1 -std=c99" } */
+
+#include <stdlib.h>
+
+#if __INT_MAX__ == 2147483647
+typedef unsigned int uint32_t;
+#elif __LONG_MAX__ == 2147483647
+typedef unsigned long uint32_t;
+#else
+#error unable to find 32-bit integer type
+#endif
+
+#define rotl(x,n) (((x) << ((int)(n))) | ((x) >> (32 - (int)(n))))
+
+uint32_t
+f (uint32_t a, uint32_t b)
+{
+
+ b = rotl (a, b & 31);
+ return b;
+}
+
+int
+main ()
+{
+ if (f(2,31) != 1)
+ abort ();
+ exit (0);
+}