PR middle-end/27945
[official-gcc.git] / gcc / testsuite / gcc.dg / 20040916-1.c
blobfbea9e385b73f47ebcf65e4581579e9fcee323e6
1 /* { dg-do compile } */
2 /* { dg-options "-O2" } */
4 /* PR17513 - we hit a bug where EDGE_EXECUTABLE was not cleared on
5 successors of the entry block. This lead to a flow verification
6 error much later in the compilation (after gcse). */
7 typedef unsigned char uint8;
8 typedef unsigned int uint32;
10 uint32 marker = 0;
11 uint8 *buff = 0;
12 uint32 bsize = 0;
14 extern int foo (void);
16 uint32
17 bar (void)
19 int len, d;
21 for (;;)
23 if (foo () == 0)
24 return (0);
26 switch (marker)
28 case 0xfe:
30 len |= (*buff++);
31 bsize -= 2;
33 while (len > 0)
35 d = *buff++;
36 len--;
39 break;
40 default:
41 break;