OSDN Git Service

2006-03-07 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / torture / pr26587.c
1 /* { dg-do run } */
2
3 extern void abort(void);
4 typedef unsigned int BF_word;
5 typedef BF_word BF_key[16 + 2];
6 static struct {
7     BF_key P;
8 } BF_current;
9 int main(void)
10 {   
11     BF_word L;
12     BF_word tmp4, *ptr;
13     BF_word i;
14     for (i = 0; i < 16 + 2; i++)
15         BF_current.P[i] = i * 0x98765432;
16     L = 0;
17     ptr = BF_current.P;
18     do {
19         ptr += 2;
20         L ^= BF_current.P[0];
21         tmp4 = L >> 24;
22         L = tmp4 ^ BF_current.P[16 + 1];
23         *(ptr - 2) = L;
24     } while (ptr < &BF_current.P[16 + 2]);
25     if (L != 0x1fdb9752)
26         abort();
27     return 0;
28 }