| typedef __SIZE_TYPE__ size_t; |
| typedef unsigned long int reg_syntax_t; |
| struct re_pattern_buffer |
| { |
| unsigned char *buffer; |
| }; |
| typedef enum |
| { |
| jump, |
| jump_n, |
| } re_opcode_t; |
| static int |
| foo (bufp) |
| struct re_pattern_buffer *bufp; |
| { |
| int mcnt; |
| unsigned char *p = bufp->buffer; |
| switch (((re_opcode_t) * p++)) |
| { |
| unconditional_jump: |
| ; |
| /* This test case caused an ICE because the statement insertion |
| routines were failing to update basic block boundaries. */ |
| case jump: |
| do |
| { |
| (mcnt) = *(p) & 0377; |
| } |
| while (0); |
| (p) += 2; |
| p += mcnt; |
| case jump_n: |
| (mcnt) = *(p + 2) & 0377; |
| if (mcnt) |
| goto unconditional_jump; |
| } |
| } |