diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/pr43415.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr43415.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr43415.c b/gcc/testsuite/gcc.c-torture/compile/pr43415.c new file mode 100644 index 000000000..c00e1c41c --- /dev/null +++ b/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; +} + |