void stmt() {
  extern peeksym, peekc, *csym, cval, isn, nauto;
  auto o, o1, o2;
next:
  o = symbol();
  if (o == 0) {
    error('fe');
    return;
  }
  if (o == 1 | o == 3)
    return;
  if (o == 2) {
    stmtlist();
    return;
  }
  if (o == 19) {
    if (cval == 10) {
      expr(15);
      gen('n', 6);
      goto semi;
    }
    if (cval == 11) {
      if ((peeksym = symbol()) == 6)
        pexpr();
      gen('n', 7);
      goto semi;
    }
    if (cval == 12) {
      pexpr();
      o1 = isn;
      isn = isn + 1;
      jumpc(o1);
      stmt();
      o = symbol();
      if (o == 19 & cval == 14) {
        o2 = isn;
        isn = isn + 1;
        jump(o2);
        label(o1);
        stmt();
        label(o2);
        return;
      }
      peeksym = o;
      label(o1);
      return;
    }
    if (cval == 13) {
      o1 = isn;
      isn = isn + 1;
      label(o1);
      pexpr();
      o2 = isn;
      isn = isn + 1;
      jumpc(o2);
      stmt();
      jump(o1);
      label(o2);
      return;
    }
    error('sx');
    goto syntax;
  }
  if (o == 20 & peekc == ':') {
    peekc = 0;
    if (!*csym) {
      *csym = 2;
      csym[1] = isn;
      isn = isn + 1;
    } else if (*csym != 2) {
      error('rd');
      goto next;
    }
    label(csym[1]);
    goto next;
  }
  peeksym = o;
  expr(15);
  gen('s', nauto);
semi:
  o = symbol();
  if (o == 1)
    return;
syntax:
  error('sz');
  goto next;
}


x86 assembly (clang, -O0):
<stmt>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    $0x0,%al
call   10c0 <symbol@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x0,-0x4(%rbp)
jne    11cd <stmt+0x2d>
mov    $0x6665,%edi
mov    $0x0,%al
call   10b0 <error@plt>
jmp    1531 <stmt+0x391>
cmpl   $0x1,-0x4(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
cmpl   $0x3,-0x4(%rbp)
sete   %cl
and    $0x1,%cl
movzbl %cl,%ecx
or     %ecx,%eax
cmp    $0x0,%eax
je     11f6 <stmt+0x56>
jmp    1531 <stmt+0x391>
cmpl   $0x2,-0x4(%rbp)
jne    120c <stmt+0x6c>
mov    $0x0,%al
call   1060 <stmtlist@plt>
jmp    1531 <stmt+0x391>
cmpl   $0x13,-0x4(%rbp)
jne    1409 <stmt+0x269>
mov    0x2d9b(%rip),%rax
cmpl   $0xa,(%rax)
jne    1248 <stmt+0xa8>
mov    $0xf,%edi
mov    $0x0,%al
call   1040 <expr@plt>
mov    $0x6e,%edi
mov    $0x6,%esi
mov    $0x0,%al
call   1080 <gen@plt>
jmp    1502 <stmt+0x362>
mov    0x2d69(%rip),%rax
cmpl   $0xb,(%rax)
jne    128e <stmt+0xee>
mov    $0x0,%al
call   10c0 <symbol@plt>
mov    0x2d4a(%rip),%rcx
mov    %eax,(%rcx)
cmp    $0x6,%eax
jne    1278 <stmt+0xd8>
mov    $0x0,%al
call   1050 <pexpr@plt>
mov    $0x6e,%edi
mov    $0x7,%esi
mov    $0x0,%al
call   1080 <gen@plt>
jmp    1502 <stmt+0x362>
mov    0x2d23(%rip),%rax
cmpl   $0xc,(%rax)
jne    136d <stmt+0x1cd>
mov    $0x0,%al
call   1050 <pexpr@plt>
mov    0x2d4c(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x8(%rbp)
mov    0x2d40(%rip),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    0x2d34(%rip),%rax
mov    %ecx,(%rax)
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   10a0 <jumpc@plt>
call   1070 <stmt@plt>
mov    $0x0,%al
call   10c0 <symbol@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x13,-0x4(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
mov    0x2cc6(%rip),%rcx
cmpl   $0xe,(%rcx)
sete   %cl
and    $0x1,%cl
movzbl %cl,%ecx
and    %ecx,%eax
cmp    $0x0,%eax
je     1352 <stmt+0x1b2>
mov    0x2ce8(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0xc(%rbp)
mov    0x2cdc(%rip),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    0x2cd0(%rip),%rax
mov    %ecx,(%rax)
mov    -0xc(%rbp),%edi
mov    $0x0,%al
call   1090 <jump@plt>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1030 <label@plt>
call   1070 <stmt@plt>
mov    -0xc(%rbp),%edi
mov    $0x0,%al
call   1030 <label@plt>
jmp    1531 <stmt+0x391>
mov    -0x4(%rbp),%ecx
mov    0x2c54(%rip),%rax
mov    %ecx,(%rax)
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1030 <label@plt>
jmp    1531 <stmt+0x391>
mov    0x2c44(%rip),%rax
cmpl   $0xd,(%rax)
jne    13f8 <stmt+0x258>
mov    0x2c74(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x8(%rbp)
mov    0x2c68(%rip),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    0x2c5c(%rip),%rax
mov    %ecx,(%rax)
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1030 <label@plt>
mov    $0x0,%al
call   1050 <pexpr@plt>
mov    0x2c42(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0xc(%rbp)
mov    0x2c36(%rip),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    0x2c2a(%rip),%rax
mov    %ecx,(%rax)
mov    -0xc(%rbp),%edi
mov    $0x0,%al
call   10a0 <jumpc@plt>
call   1070 <stmt@plt>
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1090 <jump@plt>
mov    -0xc(%rbp),%edi
mov    $0x0,%al
call   1030 <label@plt>
jmp    1531 <stmt+0x391>
mov    $0x7378,%edi
mov    $0x0,%al
call   10b0 <error@plt>
jmp    1520 <stmt+0x380>
cmpl   $0x14,-0x4(%rbp)
sete   %al
and    $0x1,%al
movzbl %al,%eax
mov    0x2bac(%rip),%rcx
cmpl   $0x3a,(%rcx)
sete   %cl
and    $0x1,%cl
movzbl %cl,%ecx
and    %ecx,%eax
cmp    $0x0,%eax
je     14d5 <stmt+0x335>
mov    0x2b8e(%rip),%rax
movl   $0x0,(%rax)
mov    0x2b91(%rip),%rax
mov    (%rax),%rax
cmpl   $0x0,(%rax)
jne    1493 <stmt+0x2f3>
mov    0x2b7e(%rip),%rax
mov    (%rax),%rax
movl   $0x2,(%rax)
mov    0x2b8e(%rip),%rax
mov    (%rax),%ecx
mov    0x2b65(%rip),%rax
mov    (%rax),%rax
mov    %ecx,0x4(%rax)
mov    0x2b78(%rip),%rax
mov    (%rax),%ecx
add    $0x1,%ecx
mov    0x2b6c(%rip),%rax
mov    %ecx,(%rax)
jmp    14bc <stmt+0x31c>
mov    0x2b3e(%rip),%rax
mov    (%rax),%rax
cmpl   $0x2,(%rax)
je     14b7 <stmt+0x317>
mov    $0x7264,%edi
mov    $0x0,%al
call   10b0 <error@plt>
jmp    11a8 <stmt+0x8>
jmp    14bc <stmt+0x31c>
mov    0x2b15(%rip),%rax
mov    (%rax),%rax
mov    0x4(%rax),%edi
mov    $0x0,%al
call   1030 <label@plt>
jmp    11a8 <stmt+0x8>
mov    -0x4(%rbp),%ecx
mov    0x2ad1(%rip),%rax
mov    %ecx,(%rax)
mov    $0xf,%edi
mov    $0x0,%al
call   1040 <expr@plt>
mov    0x2aec(%rip),%rax
mov    (%rax),%esi
mov    $0x73,%edi
mov    $0x0,%al
call   1080 <gen@plt>
mov    $0x0,%al
call   10c0 <symbol@plt>
mov    %eax,-0x4(%rbp)
cmpl   $0x1,-0x4(%rbp)
jne    151b <stmt+0x37b>
jmp    1531 <stmt+0x391>
jmp    1520 <stmt+0x380>
mov    $0x737a,%edi
mov    $0x0,%al
call   10b0 <error@plt>
jmp    11a8 <stmt+0x8>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<stmt>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
xor    %eax,%eax
call   10c0 <symbol@plt>
test   %eax,%eax
je     130f <stmt+0x16f>
mov    0x2df7(%rip),%r13
lea    0xe38(%rip),%rbx
mov    0x2de1(%rip),%r14
mov    0x2df2(%rip),%r15
mov    0x2dfb(%rip),%rbp
mov    0x2dfc(%rip),%r12
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
mov    %eax,%ecx
and    $0xfffffffd,%ecx
cmp    $0x1,%ecx
je     1329 <stmt+0x189>
cmp    $0x13,%eax
je     1240 <stmt+0xa0>
cmp    $0x2,%eax
je     1338 <stmt+0x198>
cmp    $0x14,%eax
jne    1270 <stmt+0xd0>
cmpl   $0x3a,(%r15)
jne    1270 <stmt+0xd0>
movl   $0x0,(%r15)
mov    0x0(%rbp),%rax
mov    (%rax),%ecx
test   %ecx,%ecx
je     12e8 <stmt+0x148>
cmp    $0x2,%ecx
jne    1308 <stmt+0x168>
mov    0x4(%rax),%edi
jmp    12ff <stmt+0x15f>
nopl   (%rax)
mov    0x0(%r13),%eax
add    $0xfffffff6,%eax
cmp    $0x3,%eax
ja     128a <stmt+0xea>
movslq (%rbx,%rax,4),%rax
add    %rbx,%rax
jmp    *%rax
mov    $0xf,%edi
xor    %eax,%eax
call   1040 <expr@plt>
mov    $0x6e,%edi
mov    $0x6,%esi
jmp    12b8 <stmt+0x118>
nopl   (%rax)
mov    %eax,(%r14)
mov    $0xf,%edi
xor    %eax,%eax
call   1040 <expr@plt>
mov    (%r12),%esi
mov    $0x73,%edi
jmp    12b8 <stmt+0x118>
mov    $0x7378,%edi
xor    %eax,%eax
call   10b0 <error@plt>
jmp    12cb <stmt+0x12b>
xor    %eax,%eax
call   10c0 <symbol@plt>
mov    %eax,(%r14)
cmp    $0x6,%eax
jne    12ae <stmt+0x10e>
xor    %eax,%eax
call   1050 <pexpr@plt>
mov    $0x6e,%edi
mov    $0x7,%esi
xor    %eax,%eax
call   1080 <gen@plt>
xor    %eax,%eax
call   10c0 <symbol@plt>
cmp    $0x1,%eax
je     1329 <stmt+0x189>
mov    $0x737a,%edi
xor    %eax,%eax
call   10b0 <error@plt>
xor    %eax,%eax
call   10c0 <symbol@plt>
test   %eax,%eax
jne    11f0 <stmt+0x50>
jmp    130f <stmt+0x16f>
movl   $0x2,(%rax)
mov    0x2d03(%rip),%rcx
mov    (%rcx),%edi
mov    %edi,0x4(%rax)
lea    0x1(%rdi),%eax
mov    %eax,(%rcx)
xor    %eax,%eax
call   1030 <label@plt>
jmp    12d7 <stmt+0x137>
mov    $0x7264,%edi
jmp    12d0 <stmt+0x130>
mov    $0x6665,%edi
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    10b0 <error@plt>
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1060 <stmtlist@plt>
xor    %eax,%eax
call   1050 <pexpr@plt>
mov    0x2c9d(%rip),%rcx
mov    (%rcx),%r15d
lea    0x1(%r15),%eax
mov    %eax,(%rcx)
mov    %r15d,%edi
xor    %eax,%eax
call   10a0 <jumpc@plt>
call   1070 <stmt@plt>
xor    %eax,%eax
call   10c0 <symbol@plt>
cmp    $0x13,%eax
jne    13f9 <stmt+0x259>
cmpl   $0xe,0x0(%r13)
jne    13f9 <stmt+0x259>
mov    0x2c6b(%rip),%rcx
mov    (%rcx),%r14d
lea    0x1(%r14),%eax
mov    %eax,(%rcx)
mov    %r14d,%edi
xor    %eax,%eax
call   1090 <jump@plt>
mov    %r15d,%edi
xor    %eax,%eax
call   1030 <label@plt>
call   1070 <stmt@plt>
mov    %r14d,%edi
jmp    13ff <stmt+0x25f>
mov    0x2c3d(%rip),%rbx
mov    (%rbx),%r14d
lea    0x1(%r14),%eax
mov    %eax,(%rbx)
mov    %r14d,%edi
xor    %eax,%eax
call   1030 <label@plt>
xor    %eax,%eax
call   1050 <pexpr@plt>
mov    (%rbx),%r15d
lea    0x1(%r15),%eax
mov    %eax,(%rbx)
mov    %r15d,%edi
xor    %eax,%eax
call   10a0 <jumpc@plt>
call   1070 <stmt@plt>
mov    %r14d,%edi
xor    %eax,%eax
call   1090 <jump@plt>
jmp    13fc <stmt+0x25c>
mov    %eax,(%r14)
mov    %r15d,%edi
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <label@plt>

LLVM IR (-O0):
@cval = external global i32
@peeksym = external global i32
@isn = external global i32
@peekc = external global i32
@csym = external global i32*
@nauto = external global i32
define void @stmt() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
br label %4
4: ; preds = %141, %125, %122, %0
%5 = call i32 (...) @symbol()
store i32 %5, i32* %1
%6 = load i32, i32* %1
%7 = icmp eq i32 %6, 0
br i1 %7, label %8, label %10
8: ; preds = %4
%9 = call i32 (i32, ...) bitcast (i32 (...)* @error to i32 (i32, ...)*)(i32 26213)
br label %143
10: ; preds = %4
%11 = load i32, i32* %1
%12 = icmp eq i32 %11, 1
%13 = zext i1 %12 to i32
%14 = load i32, i32* %1
%15 = icmp eq i32 %14, 3
%16 = zext i1 %15 to i32
%17 = or i32 %13, %16
%18 = icmp ne i32 %17, 0
br i1 %18, label %19, label %20
19: ; preds = %10
br label %143
20: ; preds = %10
%21 = load i32, i32* %1
%22 = icmp eq i32 %21, 2
br i1 %22, label %23, label %25
23: ; preds = %20
%24 = call i32 (...) @stmtlist()
br label %143
25: ; preds = %20
%26 = load i32, i32* %1
%27 = icmp eq i32 %26, 19
br i1 %27, label %28, label %98
28: ; preds = %25
%29 = load i32, i32* @cval
%30 = icmp eq i32 %29, 10
br i1 %30, label %31, label %34
31: ; preds = %28
%32 = call i32 (i32, ...) bitcast (i32 (...)* @expr to i32 (i32, ...)*)(i32 15)
%33 = call i32 (i32, i32, ...) bitcast (i32 (...)* @gen to i32 (i32, i32, ...)*)(i32 110, i32 6)
br label %135
34: ; preds = %28
%35 = load i32, i32* @cval
%36 = icmp eq i32 %35, 11
br i1 %36, label %37, label %44
37: ; preds = %34
%38 = call i32 (...) @symbol()
store i32 %38, i32* @peeksym
%39 = icmp eq i32 %38, 6
br i1 %39, label %40, label %42
40: ; preds = %37
%41 = call i32 (...) @pexpr()
br label %42
42: ; preds = %40, %37
%43 = call i32 (i32, i32, ...) bitcast (i32 (...)* @gen to i32 (i32, i32, ...)*)(i32 110, i32 7)
br label %135
44: ; preds = %34
%45 = load i32, i32* @cval
%46 = icmp eq i32 %45, 12
br i1 %46, label %47, label %77
47: ; preds = %44
%48 = call i32 (...) @pexpr()
%49 = load i32, i32* @isn
store i32 %49, i32* %2
%50 = load i32, i32* @isn
%51 = add nsw i32 %50, 1
store i32 %51, i32* @isn
%52 = load i32, i32* %2
%53 = call i32 (i32, ...) bitcast (i32 (...)* @jumpc to i32 (i32, ...)*)(i32 %52)
%54 = call i32 (...) @symbol()
store i32 %54, i32* %1
%55 = load i32, i32* %1
%56 = icmp eq i32 %55, 19
%57 = zext i1 %56 to i32
%58 = load i32, i32* @cval
%59 = icmp eq i32 %58, 14
%60 = zext i1 %59 to i32
%61 = and i32 %57, %60
%62 = icmp ne i32 %61, 0
br i1 %62, label %63, label %73
63: ; preds = %47
%64 = load i32, i32* @isn
store i32 %64, i32* %3
%65 = load i32, i32* @isn
%66 = add nsw i32 %65, 1
store i32 %66, i32* @isn
%67 = load i32, i32* %3
%68 = call i32 (i32, ...) bitcast (i32 (...)* @jump to i32 (i32, ...)*)(i32 %67)
%69 = load i32, i32* %2
%70 = call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %69)
%71 = load i32, i32* %3
%72 = call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %71)
br label %143
73: ; preds = %47
%74 = load i32, i32* %1
store i32 %74, i32* @peeksym
%75 = load i32, i32* %2
%76 = call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %75)
br label %143
77: ; preds = %44
%78 = load i32, i32* @cval
%79 = icmp eq i32 %78, 13
br i1 %79, label %80, label %96
80: ; preds = %77
%81 = load i32, i32* @isn
store i32 %81, i32* %2
%82 = load i32, i32* @isn
%83 = add nsw i32 %82, 1
store i32 %83, i32* @isn
%84 = load i32, i32* %2
%85 = call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %84)
%86 = call i32 (...) @pexpr()
%87 = load i32, i32* @isn
store i32 %87, i32* %3
%88 = load i32, i32* @isn
%89 = add nsw i32 %88, 1
store i32 %89, i32* @isn
%90 = load i32, i32* %3
%91 = call i32 (i32, ...) bitcast (i32 (...)* @jumpc to i32 (i32, ...)*)(i32 %90)
%92 = load i32, i32* %2
%93 = call i32 (i32, ...) bitcast (i32 (...)* @jump to i32 (i32, ...)*)(i32 %92)
%94 = load i32, i32* %3
%95 = call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %94)
br label %143
96: ; preds = %77
%97 = call i32 (i32, ...) bitcast (i32 (...)* @error to i32 (i32, ...)*)(i32 29560)
br label %141
98: ; preds = %25
%99 = load i32, i32* %1
%100 = icmp eq i32 %99, 20
%101 = zext i1 %100 to i32
%102 = load i32, i32* @peekc
%103 = icmp eq i32 %102, 58
%104 = zext i1 %103 to i32
%105 = and i32 %101, %104
%106 = icmp ne i32 %105, 0
br i1 %106, label %107, label %130
107: ; preds = %98
store i32 0, i32* @peekc
%108 = load i32*, i32** @csym
%109 = load i32, i32* %108
%110 = icmp ne i32 %109, 0
br i1 %110, label %118, label %111
111: ; preds = %107
%112 = load i32*, i32** @csym
store i32 2, i32* %112
%113 = load i32, i32* @isn
%114 = load i32*, i32** @csym
%115 = getelementptr inbounds i32, i32* %114, i64 1
store i32 %113, i32* %115
%116 = load i32, i32* @isn
%117 = add nsw i32 %116, 1
store i32 %117, i32* @isn
br label %125
118: ; preds = %107
%119 = load i32*, i32** @csym
%120 = load i32, i32* %119
%121 = icmp ne i32 %120, 2
br i1 %121, label %122, label %124
122: ; preds = %118
%123 = call i32 (i32, ...) bitcast (i32 (...)* @error to i32 (i32, ...)*)(i32 29284)
br label %4
124: ; preds = %118
br label %125
125: ; preds = %124, %111
%126 = load i32*, i32** @csym
%127 = getelementptr inbounds i32, i32* %126, i64 1
%128 = load i32, i32* %127
%129 = call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %128)
br label %4
130: ; preds = %98
%131 = load i32, i32* %1
store i32 %131, i32* @peeksym
%132 = call i32 (i32, ...) bitcast (i32 (...)* @expr to i32 (i32, ...)*)(i32 15)
%133 = load i32, i32* @nauto
%134 = call i32 (i32, i32, ...) bitcast (i32 (...)* @gen to i32 (i32, i32, ...)*)(i32 115, i32 %133)
br label %135
135: ; preds = %130, %42, %31
%136 = call i32 (...) @symbol()
store i32 %136, i32* %1
%137 = load i32, i32* %1
%138 = icmp eq i32 %137, 1
br i1 %138, label %139, label %140
139: ; preds = %135
br label %143
140: ; preds = %135
br label %141
141: ; preds = %140, %96
%142 = call i32 (i32, ...) bitcast (i32 (...)* @error to i32 (i32, ...)*)(i32 29562)
br label %4
143: ; preds = %139, %80, %73, %63, %23, %19, %8
ret void
}

LLVM IR (-O2):
@cval = external global i32
@peeksym = external global i32
@isn = external global i32
@peekc = external global i32
@csym = external global i32*
@nauto = external global i32
define void @stmt() {
%1 = tail call i32 (...) @symbol()
%2 = icmp eq i32 %1, 0
br i1 %2, label %3, label %5
3: ; preds = %72, %0
%4 = tail call i32 (i32, ...) bitcast (i32 (...)* @error to i32 (i32, ...)*)(i32 26213)
br label %34
5: ; preds = %0, %72
%6 = phi i32 [ %73, %72 ], [ %1, %0 ]
%7 = and i32 %6, -3
%8 = icmp eq i32 %7, 1
br i1 %8, label %34, label %9
9: ; preds = %5
switch i32 %6, label %55 [
i32 2, label %10
i32 19, label %12
]
10: ; preds = %9
%11 = tail call i32 (...) @stmtlist()
br label %34
12: ; preds = %9
%13 = load i32, i32* @cval
switch i32 %13, label %53 [
i32 10, label %14
i32 11, label %17
i32 12, label %24
i32 13, label %43
]
14: ; preds = %12
%15 = tail call i32 (i32, ...) bitcast (i32 (...)* @expr to i32 (i32, ...)*)(i32 15)
%16 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @gen to i32 (i32, i32, ...)*)(i32 110, i32 6)
br label %82
17: ; preds = %12
%18 = tail call i32 (...) @symbol()
store i32 %18, i32* @peeksym
%19 = icmp eq i32 %18, 6
br i1 %19, label %20, label %22
20: ; preds = %17
%21 = tail call i32 (...) @pexpr()
br label %22
22: ; preds = %20, %17
%23 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @gen to i32 (i32, i32, ...)*)(i32 110, i32 7)
br label %82
24: ; preds = %12
%25 = tail call i32 (...) @pexpr()
%26 = load i32, i32* @isn
%27 = add nsw i32 %26, 1
store i32 %27, i32* @isn
%28 = tail call i32 (i32, ...) bitcast (i32 (...)* @jumpc to i32 (i32, ...)*)(i32 %26)
tail call void @stmt()
%29 = tail call i32 (...) @symbol()
%30 = icmp eq i32 %29, 19
%31 = load i32, i32* @cval
%32 = icmp eq i32 %31, 14
%33 = and i1 %30, %32
br i1 %33, label %35, label %41
34: ; preds = %5, %82, %3, %10, %41, %43, %35
ret void
35: ; preds = %24
%36 = load i32, i32* @isn
%37 = add nsw i32 %36, 1
store i32 %37, i32* @isn
%38 = tail call i32 (i32, ...) bitcast (i32 (...)* @jump to i32 (i32, ...)*)(i32 %36)
%39 = tail call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %26)
tail call void @stmt()
%40 = tail call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %36)
br label %34
41: ; preds = %24
store i32 %29, i32* @peeksym
%42 = tail call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %26)
br label %34
43: ; preds = %12
%44 = load i32, i32* @isn
%45 = add nsw i32 %44, 1
store i32 %45, i32* @isn
%46 = tail call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %44)
%47 = tail call i32 (...) @pexpr()
%48 = load i32, i32* @isn
%49 = add nsw i32 %48, 1
store i32 %49, i32* @isn
%50 = tail call i32 (i32, ...) bitcast (i32 (...)* @jumpc to i32 (i32, ...)*)(i32 %48)
tail call void @stmt()
%51 = tail call i32 (i32, ...) bitcast (i32 (...)* @jump to i32 (i32, ...)*)(i32 %44)
%52 = tail call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %48)
br label %34
53: ; preds = %12
%54 = tail call i32 (i32, ...) bitcast (i32 (...)* @error to i32 (i32, ...)*)(i32 29560)
br label %85
55: ; preds = %9
%56 = icmp eq i32 %6, 20
%57 = load i32, i32* @peekc
%58 = icmp eq i32 %57, 58
%59 = and i1 %56, %58
br i1 %59, label %60, label %78
60: ; preds = %55
store i32 0, i32* @peekc
%61 = load i32*, i32** @csym
%62 = load i32, i32* %61
switch i32 %62, label %70 [
i32 0, label %66
i32 2, label %63
]
63: ; preds = %60
%64 = getelementptr inbounds i32, i32* %61, i64 1
%65 = load i32, i32* %64
br label %75
66: ; preds = %60
store i32 2, i32* %61
%67 = load i32, i32* @isn
%68 = getelementptr inbounds i32, i32* %61, i64 1
store i32 %67, i32* %68
%69 = add nsw i32 %67, 1
store i32 %69, i32* @isn
br label %75
70: ; preds = %60
%71 = tail call i32 (i32, ...) bitcast (i32 (...)* @error to i32 (i32, ...)*)(i32 29284)
br label %72
72: ; preds = %70, %75, %85
%73 = tail call i32 (...) @symbol()
%74 = icmp eq i32 %73, 0
br i1 %74, label %3, label %5
75: ; preds = %63, %66
%76 = phi i32 [ %65, %63 ], [ %67, %66 ]
%77 = tail call i32 (i32, ...) bitcast (i32 (...)* @label to i32 (i32, ...)*)(i32 %76)
br label %72
78: ; preds = %55
store i32 %6, i32* @peeksym
%79 = tail call i32 (i32, ...) bitcast (i32 (...)* @expr to i32 (i32, ...)*)(i32 15)
%80 = load i32, i32* @nauto
%81 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @gen to i32 (i32, i32, ...)*)(i32 115, i32 %80)
br label %82
82: ; preds = %78, %22, %14
%83 = tail call i32 (...) @symbol()
%84 = icmp eq i32 %83, 1
br i1 %84, label %34, label %85
85: ; preds = %82, %53
%86 = tail call i32 (i32, ...) bitcast (i32 (...)* @error to i32 (i32, ...)*)(i32 29562)
br label %72
}