aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr43415.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr43415.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr43415.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr43415.c b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr43415.c
new file mode 100644
index 000000000..c00e1c41c
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gcc.c-torture/compile/pr43415.c
@@ -0,0 +1,36 @@
+int main()
+{
+ unsigned long long table[256];
+ unsigned int i;
+ for (i=0; i<256; ++i) {
+ unsigned long long j;
+ unsigned char x=i;
+ for (j=0; j<5; ++j) {
+ x += x<<1;
+ x ^= x>>1;
+ }
+ for (j=0; j<5; ++j) {
+ x += x<<1;
+ x ^= x>>1;
+ }
+ for (j=0; j<5; ++j) {
+ x += x<<1;
+ x ^= x>>1;
+ }
+ for (j=0; j<5; ++j) {
+ x += x<<1;
+ x ^= x>>1;
+ }
+ for (j=0; j<5; ++j) {
+ x += x<<1;
+ x ^= x>>1;
+ }
+ table[i] ^= (((unsigned long long)x)<<16);
+ }
+ for (i=0; i<256; ++i) {
+ if ((table[i]&0xff)==i)
+ return 1;
+ }
+ return 0;
+}
+