diff options
author | Joern Rennecke <amylaar@gcc.gnu.org> | 2005-11-25 20:09:21 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2005-11-25 20:09:21 +0000 |
commit | dacfe88f94bf5dc985411435e2e83d66a34efe99 (patch) | |
tree | b1a2a3b0d455aa9c5d3e1adf980951f48cac801e /gcc | |
parent | 7abd5009b6bb733af4dca0334c2afab90f32f082 (diff) | |
download | gcc-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.c | 33 |
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); +} |