OSDN Git Service

2012-04-13 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / torture / pr47677.c
1 /* { dg-do compile } */
2
3 struct S { int s; int u; };
4 extern int bar (void);
5 extern struct S *baz (void);
6
7 void
8 foo (int x, struct S *y, char z, int *v, struct S *s)
9 {
10   int c, d;
11   if (x & 2)
12     d = 1;
13   else
14     {
15       d = (x & 1) ? 11 : 0;
16       while ((c = (s->s != (s->u & 1) ? s->s : bar ())) != '\0');
17       c = (s->s != '\\' && (s->u & 4) ? s->s : bar ());
18       if (c == '<')
19         goto lab;
20     }
21   while ((c = ((s->u & 1) ? s->s : bar ())) != 0
22          && ((d != 11 && d != 17) || (v[c] & 1) == 0))
23     {
24     lab:;
25       switch (d)
26         {
27         case 14:
28           if (c == '}')
29             y = baz ();
30           d = y->s = z == '<' ? 17 : 11;
31         }
32     }
33 }
34