int main(int argc, char **argv) {
  int i, j, err, nerrs, ncid, varid[5], dimid[2];
  int old_buf[3][5], get_buf[3][5], new_buf[1024];
  if (argc != 2) {
    printf("Usage: %s [filename]\n", argv[0]);
    exit(0);
  }
  err = nc_open(argv[1], 0x0001, &ncid);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 33, nc_strerror(err));
    }
  }
  err = nc_inq_varid(ncid, "fixed_var_1", &varid[0]);
  err = nc_inq_varid(ncid, "fixed_var_3", &varid[1]);
  err = nc_inq_varid(ncid, "fixed_var_5", &varid[2]);
  err = nc_get_var_int(ncid, varid[0], old_buf[0]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 39, nc_strerror(err));
    }
  }
  err = nc_get_var_int(ncid, varid[1], old_buf[1]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 40, nc_strerror(err));
    }
  }
  err = nc_get_var_int(ncid, varid[2], old_buf[2]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 41, nc_strerror(err));
    }
  }
  err = nc_redef(ncid);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 43, nc_strerror(err));
    }
  }
  err = nc_def_dim(ncid, "new_dim_1", 32, &dimid[0]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 46, nc_strerror(err));
    }
  }
  err = nc_def_dim(ncid, "new_dim_2", 32, &dimid[1]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 47, nc_strerror(err));
    }
  }
  err = nc_def_var(ncid, "new_var1", 4, 2, dimid, &varid[3]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 50, nc_strerror(err));
    }
  }
  err = nc_def_var(ncid, "new_var2", 5, 2, dimid, &varid[4]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 51, nc_strerror(err));
    }
  }
  err = nc_enddef(ncid);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 52, nc_strerror(err));
    }
  }
  for (i = 0; i < 1024; i++)
    new_buf[i] = -1;
  err = nc_put_var_int(ncid, varid[3], new_buf);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 56, nc_strerror(err));
    }
  }
  err = nc_get_var_int(ncid, varid[0], get_buf[0]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 59, nc_strerror(err));
    }
  }
  err = nc_get_var_int(ncid, varid[1], get_buf[1]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 60, nc_strerror(err));
    }
  }
  err = nc_get_var_int(ncid, varid[2], get_buf[2]);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 61, nc_strerror(err));
    }
  }
  nerrs = 0;
  for (i = 0; i < 3; i++) {
    char varname[32];
    sprintf(varname, "fixed_var_%d", 2 * i + 1);
    for (j = 0; j < 5; j++) {
      if (get_buf[i][j] != old_buf[i][j]) {
        printf(
            "Error in %s line %d: expecting %s[%d]=%d but got %d\n",
            "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/"
            "2022-01-22/02-19-57/repos/balborian/libmesh/refs/heads/master/"
            "GLM_Executables/GLM_Source/netcdf-c-4.4.1/nc_test/tst_addvar.c",
            70, varname, j, old_buf[i][j], get_buf[i][j]);
        nerrs++;
      }
    }
  }
  err = nc_close(ncid);
  {
    if (err != 0) {
      printf("Error at line=%d: %s\n", 76, nc_strerror(err));
    }
  }
  if (nerrs > 0)
    exit(-1);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x1100,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
cmpl   $0x2,-0x8(%rbp)
je     120f <main+0x3f>
mov    -0x10(%rbp),%rax
mov    (%rax),%rsi
lea    0xdff(%rip),%rdi
mov    $0x0,%al
call   1060 <printf@plt>
xor    %edi,%edi
call   10d0 <exit@plt>
mov    -0x10(%rbp),%rax
mov    0x8(%rax),%rdi
mov    $0x1,%esi
lea    -0x24(%rbp),%rdx
mov    $0x0,%al
call   10e0 <nc_open@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1253 <main+0x83>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xdcf(%rip),%rdi
mov    $0x21,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
lea    -0x40(%rbp),%rdx
lea    0xdcb(%rip),%rsi
mov    $0x0,%al
call   1090 <nc_inq_varid@plt>
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%edi
lea    -0x40(%rbp),%rdx
add    $0x4,%rdx
lea    0xdbb(%rip),%rsi
mov    $0x0,%al
call   1090 <nc_inq_varid@plt>
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%edi
lea    -0x40(%rbp),%rdx
add    $0x8,%rdx
lea    0xdab(%rip),%rsi
mov    $0x0,%al
call   1090 <nc_inq_varid@plt>
mov    %eax,-0x1c(%rbp)
mov    -0x24(%rbp),%edi
mov    -0x40(%rbp),%esi
lea    -0x90(%rbp),%rdx
mov    $0x0,%al
call   1050 <nc_get_var_int@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     12e3 <main+0x113>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xd3f(%rip),%rdi
mov    $0x27,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
mov    -0x3c(%rbp),%esi
lea    -0x90(%rbp),%rdx
add    $0x14,%rdx
mov    $0x0,%al
call   1050 <nc_get_var_int@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1327 <main+0x157>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xcfb(%rip),%rdi
mov    $0x28,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
mov    -0x38(%rbp),%esi
lea    -0x90(%rbp),%rdx
add    $0x28,%rdx
mov    $0x0,%al
call   1050 <nc_get_var_int@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     136b <main+0x19b>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xcb7(%rip),%rdi
mov    $0x29,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1080 <nc_redef@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     13a1 <main+0x1d1>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xc81(%rip),%rdi
mov    $0x2b,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
lea    -0x48(%rbp),%rcx
lea    0xca1(%rip),%rsi
mov    $0x20,%edx
mov    $0x0,%al
call   10b0 <nc_def_dim@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     13e7 <main+0x217>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xc3b(%rip),%rdi
mov    $0x2e,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
lea    -0x48(%rbp),%rcx
add    $0x4,%rcx
lea    0xc61(%rip),%rsi
mov    $0x20,%edx
mov    $0x0,%al
call   10b0 <nc_def_dim@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1431 <main+0x261>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xbf1(%rip),%rdi
mov    $0x2f,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
lea    -0x48(%rbp),%r8
lea    -0x40(%rbp),%r9
add    $0xc,%r9
lea    0xc1d(%rip),%rsi
mov    $0x4,%edx
mov    $0x2,%ecx
mov    $0x0,%al
call   10a0 <nc_def_var@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1484 <main+0x2b4>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xb9e(%rip),%rdi
mov    $0x32,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
lea    -0x48(%rbp),%r8
lea    -0x40(%rbp),%r9
add    $0x10,%r9
lea    0xbd3(%rip),%rsi
mov    $0x5,%edx
mov    $0x2,%ecx
mov    $0x0,%al
call   10a0 <nc_def_var@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     14d7 <main+0x307>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xb4b(%rip),%rdi
mov    $0x33,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1070 <nc_enddef@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     150d <main+0x33d>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xb15(%rip),%rdi
mov    $0x34,%esi
mov    $0x0,%al
call   1060 <printf@plt>
movl   $0x0,-0x14(%rbp)
cmpl   $0x400,-0x14(%rbp)
jge    153e <main+0x36e>
movslq -0x14(%rbp),%rax
movl   $0xffffffff,-0x10d0(%rbp,%rax,4)
ff ff ff ff
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1514 <main+0x344>
mov    -0x24(%rbp),%edi
mov    -0x34(%rbp),%esi
lea    -0x10d0(%rbp),%rdx
mov    $0x0,%al
call   1030 <nc_put_var_int@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     157e <main+0x3ae>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xaa4(%rip),%rdi
mov    $0x38,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
mov    -0x40(%rbp),%esi
lea    -0xd0(%rbp),%rdx
mov    $0x0,%al
call   1050 <nc_get_var_int@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     15be <main+0x3ee>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xa64(%rip),%rdi
mov    $0x3b,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
mov    -0x3c(%rbp),%esi
lea    -0xd0(%rbp),%rdx
add    $0x14,%rdx
mov    $0x0,%al
call   1050 <nc_get_var_int@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1602 <main+0x432>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0xa20(%rip),%rdi
mov    $0x3c,%esi
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x24(%rbp),%edi
mov    -0x38(%rbp),%esi
lea    -0xd0(%rbp),%rdx
add    $0x28,%rdx
mov    $0x0,%al
call   1050 <nc_get_var_int@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1646 <main+0x476>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0x9dc(%rip),%rdi
mov    $0x3d,%esi
mov    $0x0,%al
call   1060 <printf@plt>
movl   $0x0,-0x20(%rbp)
movl   $0x0,-0x14(%rbp)
cmpl   $0x3,-0x14(%rbp)
jge    174f <main+0x57f>
lea    -0x10f0(%rbp),%rdi
mov    -0x14(%rbp),%edx
shl    $0x1,%edx
add    $0x1,%edx
lea    0xa01(%rip),%rsi
mov    $0x0,%al
call   10c0 <sprintf@plt>
movl   $0x0,-0x18(%rbp)
cmpl   $0x5,-0x18(%rbp)
jge    173c <main+0x56c>
movslq -0x14(%rbp),%rcx
lea    -0xd0(%rbp),%rax
imul   $0x14,%rcx,%rcx
add    %rcx,%rax
movslq -0x18(%rbp),%rcx
mov    (%rax,%rcx,4),%eax
movslq -0x14(%rbp),%rdx
lea    -0x90(%rbp),%rcx
imul   $0x14,%rdx,%rdx
add    %rdx,%rcx
movslq -0x18(%rbp),%rdx
cmp    (%rcx,%rdx,4),%eax
je     1729 <main+0x559>
lea    -0x10f0(%rbp),%rcx
mov    -0x18(%rbp),%r8d
movslq -0x14(%rbp),%rdx
lea    -0x90(%rbp),%rax
imul   $0x14,%rdx,%rdx
add    %rdx,%rax
movslq -0x18(%rbp),%rdx
mov    (%rax,%rdx,4),%r9d
movslq -0x14(%rbp),%rdx
lea    -0xd0(%rbp),%rax
imul   $0x14,%rdx,%rdx
add    %rdx,%rax
movslq -0x18(%rbp),%rdx
mov    (%rax,%rdx,4),%eax
lea    0x979(%rip),%rdi
lea    0x9a7(%rip),%rsi
mov    $0x46,%edx
mov    %eax,(%rsp)
mov    $0x0,%al
call   1060 <printf@plt>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    172e <main+0x55e>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1683 <main+0x4b3>
jmp    1741 <main+0x571>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1654 <main+0x484>
mov    -0x24(%rbp),%edi
mov    $0x0,%al
call   1040 <nc_close@plt>
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
je     1785 <main+0x5b5>
mov    -0x1c(%rbp),%edi
mov    $0x0,%al
call   10f0 <nc_strerror@plt>
mov    %eax,%edx
lea    0x89d(%rip),%rdi
mov    $0x4c,%esi
mov    $0x0,%al
call   1060 <printf@plt>
cmpl   $0x0,-0x20(%rbp)
jle    1799 <main+0x5c9>
mov    $0xffffffff,%edi
call   10d0 <exit@plt>
xor    %eax,%eax
add    $0x1100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x10d8,%rsp
cmp    $0x2,%edi
jne    1702 <main+0x522>
mov    0x8(%rsi),%rdi
lea    0xc(%rsp),%rdx
mov    $0x1,%esi
xor    %eax,%eax
call   10f0 <nc_open@plt>
test   %eax,%eax
je     1231 <main+0x51>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xdf3(%rip),%rdi
mov    $0x21,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
lea    0xdf0(%rip),%rsi
lea    0x10(%rsp),%rdx
xor    %eax,%eax
call   10a0 <nc_inq_varid@plt>
mov    0xc(%rsp),%edi
lea    0x14(%rsp),%rdx
lea    0xde0(%rip),%rsi
xor    %eax,%eax
call   10a0 <nc_inq_varid@plt>
mov    0xc(%rsp),%edi
lea    0x18(%rsp),%rdx
lea    0xdd5(%rip),%rsi
xor    %eax,%eax
call   10a0 <nc_inq_varid@plt>
mov    0xc(%rsp),%edi
mov    0x10(%rsp),%esi
lea    0x70(%rsp),%rdx
xor    %eax,%eax
call   1050 <nc_get_var_int@plt>
test   %eax,%eax
je     12ac <main+0xcc>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xd78(%rip),%rdi
mov    $0x27,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
mov    0x14(%rsp),%esi
lea    0x84(%rsp),%rdx
xor    %eax,%eax
call   1050 <nc_get_var_int@plt>
test   %eax,%eax
je     12e5 <main+0x105>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xd3f(%rip),%rdi
mov    $0x28,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
mov    0x18(%rsp),%esi
lea    0x98(%rsp),%rdx
xor    %eax,%eax
call   1050 <nc_get_var_int@plt>
test   %eax,%eax
je     131e <main+0x13e>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xd06(%rip),%rdi
mov    $0x29,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
xor    %eax,%eax
call   1090 <nc_redef@plt>
test   %eax,%eax
je     134b <main+0x16b>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xcd9(%rip),%rdi
mov    $0x2b,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
lea    0xcfa(%rip),%rsi
lea    0x28(%rsp),%rcx
mov    $0x20,%edx
xor    %eax,%eax
call   10c0 <nc_def_dim@plt>
test   %eax,%eax
je     1389 <main+0x1a9>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xc9b(%rip),%rdi
mov    $0x2e,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
lea    0x2c(%rsp),%rcx
lea    0xcc1(%rip),%rsi
mov    $0x20,%edx
xor    %eax,%eax
call   10c0 <nc_def_dim@plt>
test   %eax,%eax
je     13c7 <main+0x1e7>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xc5d(%rip),%rdi
mov    $0x2f,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
lea    0x1c(%rsp),%r9
lea    0xc8d(%rip),%rsi
lea    0x28(%rsp),%r8
mov    $0x4,%edx
mov    $0x2,%ecx
xor    %eax,%eax
call   10b0 <nc_def_var@plt>
test   %eax,%eax
je     140f <main+0x22f>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xc15(%rip),%rdi
mov    $0x32,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
lea    0x20(%rsp),%r9
lea    0xc4e(%rip),%rsi
lea    0x28(%rsp),%r8
mov    $0x5,%edx
mov    $0x2,%ecx
xor    %eax,%eax
call   10b0 <nc_def_var@plt>
test   %eax,%eax
je     1457 <main+0x277>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xbcd(%rip),%rdi
mov    $0x33,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
xor    %eax,%eax
call   1070 <nc_enddef@plt>
test   %eax,%eax
je     1484 <main+0x2a4>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xba0(%rip),%rdi
mov    $0x34,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
lea    0xd0(%rsp),%rbx
mov    $0x1000,%edx
mov    %rbx,%rdi
mov    $0xff,%esi
call   1080 <memset@plt>
mov    0xc(%rsp),%edi
mov    0x1c(%rsp),%esi
mov    %rbx,%rdx
xor    %eax,%eax
call   1030 <nc_put_var_int@plt>
test   %eax,%eax
je     14d2 <main+0x2f2>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xb52(%rip),%rdi
mov    $0x38,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
mov    0x10(%rsp),%esi
lea    0x30(%rsp),%rdx
xor    %eax,%eax
call   1050 <nc_get_var_int@plt>
test   %eax,%eax
je     1508 <main+0x328>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xb1c(%rip),%rdi
mov    $0x3b,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
mov    0x14(%rsp),%esi
lea    0x44(%rsp),%rdx
xor    %eax,%eax
call   1050 <nc_get_var_int@plt>
test   %eax,%eax
je     153e <main+0x35e>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xae6(%rip),%rdi
mov    $0x3c,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    0xc(%rsp),%edi
mov    0x18(%rsp),%esi
lea    0x58(%rsp),%rdx
xor    %eax,%eax
call   1050 <nc_get_var_int@plt>
test   %eax,%eax
je     1574 <main+0x394>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0xab0(%rip),%rdi
mov    $0x3d,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
mov    $0x1,%ebx
lea    0xb0(%rsp),%r15
lea    0xafb(%rip),%r12
lea    0xb29(%rip),%r13
xor    %r14d,%r14d
xor    %ebp,%ebp
jmp    15b1 <main+0x3d1>
cs nopw 0x0(%rax,%rax,1)
add    $0x2,%ebx
add    $0xa,%r14
cmp    $0x1e,%r14
je     16bd <main+0x4dd>
mov    %r15,%rdi
lea    0xabb(%rip),%rsi
mov    %ebx,%edx
xor    %eax,%eax
call   10d0 <sprintf@plt>
mov    0x30(%rsp,%r14,2),%eax
mov    0x70(%rsp,%r14,2),%r9d
cmp    %r9d,%eax
je     15f1 <main+0x411>
mov    %eax,(%rsp)
mov    %r12,%rdi
mov    %r13,%rsi
mov    $0x46,%edx
mov    %r15,%rcx
xor    %r8d,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
add    $0x1,%ebp
mov    0x34(%rsp,%r14,2),%eax
mov    0x74(%rsp,%r14,2),%r9d
cmp    %r9d,%eax
je     1621 <main+0x441>
mov    %eax,(%rsp)
mov    %r12,%rdi
mov    %r13,%rsi
mov    $0x46,%edx
mov    %r15,%rcx
mov    $0x1,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
add    $0x1,%ebp
mov    0x38(%rsp,%r14,2),%eax
mov    0x78(%rsp,%r14,2),%r9d
cmp    %r9d,%eax
je     1651 <main+0x471>
mov    %eax,(%rsp)
mov    %r12,%rdi
mov    %r13,%rsi
mov    $0x46,%edx
mov    %r15,%rcx
mov    $0x2,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
add    $0x1,%ebp
mov    0x3c(%rsp,%r14,2),%eax
mov    0x7c(%rsp,%r14,2),%r9d
cmp    %r9d,%eax
je     1681 <main+0x4a1>
mov    %eax,(%rsp)
mov    %r12,%rdi
mov    %r13,%rsi
mov    $0x46,%edx
mov    %r15,%rcx
mov    $0x3,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
add    $0x1,%ebp
mov    0x40(%rsp,%r14,2),%eax
mov    0x80(%rsp,%r14,2),%r9d
cmp    %r9d,%eax
je     15a0 <main+0x3c0>
mov    %eax,(%rsp)
mov    %r12,%rdi
mov    %r13,%rsi
mov    $0x46,%edx
mov    %r15,%rcx
mov    $0x4,%r8d
xor    %eax,%eax
call   1060 <printf@plt>
add    $0x1,%ebp
jmp    15a0 <main+0x3c0>
mov    0xc(%rsp),%edi
xor    %eax,%eax
call   1040 <nc_close@plt>
test   %eax,%eax
je     16ea <main+0x50a>
mov    %eax,%edi
xor    %eax,%eax
call   1100 <nc_strerror@plt>
lea    0x93a(%rip),%rdi
mov    $0x4c,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1060 <printf@plt>
test   %ebp,%ebp
jg     171a <main+0x53a>
xor    %eax,%eax
add    $0x10d8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret
mov    (%rsi),%rsi
lea    0x8f4(%rip),%rdi
xor    %eax,%eax
call   1060 <printf@plt>
xor    %edi,%edi
call   10e0 <exit@plt>
mov    $0xffffffff,%edi
call   10e0 <exit@plt>

LLVM IR (-O0):
@.str = [22 x i8] c"Usage: %s [filename]\0A\00"
@.str.1 = [22 x i8] c"Error at line=%d: %s\0A\00"
@.str.2 = [12 x i8] c"fixed_var_1\00"
@.str.3 = [12 x i8] c"fixed_var_3\00"
@.str.4 = [12 x i8] c"fixed_var_5\00"
@.str.5 = [10 x i8] c"new_dim_1\00"
@.str.6 = [10 x i8] c"new_dim_2\00"
@.str.7 = [9 x i8] c"new_var1\00"
@.str.8 = [9 x i8] c"new_var2\00"
@.str.9 = [13 x i8] c"fixed_var_%d\00"
@.str.10 = [53 x i8] c"Error in %s line %d: expecting %s[%d]=%d but got %d\0A\00"
@.str.11 = [189 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/balborian/libmesh/refs/heads/master/GLM_Executables/GLM_Source/netcdf-c-4.4.1/nc_test/tst_addvar.c\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
%11 = alloca [5 x i32]
%12 = alloca [2 x i32]
%13 = alloca [3 x [5 x i32]]
%14 = alloca [3 x [5 x i32]]
%15 = alloca [1024 x i32]
%16 = alloca [32 x i8]
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
%17 = load i32, i32* %4
%18 = icmp ne i32 %17, 2
br i1 %18, label %19, label %24
19: ; preds = %2
%20 = load i8**, i8*** %5
%21 = getelementptr inbounds i8*, i8** %20, i64 0
%22 = load i8*, i8** %21
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str, i64 0, i64 0), i8* %22)
unreachable
24: ; preds = %2
%25 = load i8**, i8*** %5
%26 = getelementptr inbounds i8*, i8** %25, i64 1
%27 = load i8*, i8** %26
%28 = call i32 (i8*, i32, i32*, ...) bitcast (i32 (...)* @nc_open to i32 (i8*, i32, i32*, ...)*)(i8* %27, i32 1, i32* %10)
store i32 %28, i32* %8
%29 = load i32, i32* %8
%30 = icmp ne i32 %29, 0
br i1 %30, label %31, label %35
31: ; preds = %24
%32 = load i32, i32* %8
%33 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %32)
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 33, i32 %33)
br label %35
35: ; preds = %31, %24
%36 = load i32, i32* %10
%37 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 0
%38 = call i32 (i32, i8*, i32*, ...) bitcast (i32 (...)* @nc_inq_varid to i32 (i32, i8*, i32*, ...)*)(i32 %36, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.2, i64 0, i64 0), i32* %37)
store i32 %38, i32* %8
%39 = load i32, i32* %10
%40 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 1
%41 = call i32 (i32, i8*, i32*, ...) bitcast (i32 (...)* @nc_inq_varid to i32 (i32, i8*, i32*, ...)*)(i32 %39, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i64 0, i64 0), i32* %40)
store i32 %41, i32* %8
%42 = load i32, i32* %10
%43 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 2
%44 = call i32 (i32, i8*, i32*, ...) bitcast (i32 (...)* @nc_inq_varid to i32 (i32, i8*, i32*, ...)*)(i32 %42, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0), i32* %43)
store i32 %44, i32* %8
%45 = load i32, i32* %10
%46 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 0
%47 = load i32, i32* %46
%48 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %13, i64 0, i64 0
%49 = getelementptr inbounds [5 x i32], [5 x i32]* %48, i64 0, i64 0
%50 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %45, i32 %47, i32* %49)
store i32 %50, i32* %8
%51 = load i32, i32* %8
%52 = icmp ne i32 %51, 0
br i1 %52, label %53, label %57
53: ; preds = %35
%54 = load i32, i32* %8
%55 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %54)
%56 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 39, i32 %55)
br label %57
57: ; preds = %53, %35
%58 = load i32, i32* %10
%59 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 1
%60 = load i32, i32* %59
%61 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %13, i64 0, i64 1
%62 = getelementptr inbounds [5 x i32], [5 x i32]* %61, i64 0, i64 0
%63 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %58, i32 %60, i32* %62)
store i32 %63, i32* %8
%64 = load i32, i32* %8
%65 = icmp ne i32 %64, 0
br i1 %65, label %66, label %70
66: ; preds = %57
%67 = load i32, i32* %8
%68 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %67)
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 40, i32 %68)
br label %70
70: ; preds = %66, %57
%71 = load i32, i32* %10
%72 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 2
%73 = load i32, i32* %72
%74 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %13, i64 0, i64 2
%75 = getelementptr inbounds [5 x i32], [5 x i32]* %74, i64 0, i64 0
%76 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %71, i32 %73, i32* %75)
store i32 %76, i32* %8
%77 = load i32, i32* %8
%78 = icmp ne i32 %77, 0
br i1 %78, label %79, label %83
79: ; preds = %70
%80 = load i32, i32* %8
%81 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %80)
%82 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 41, i32 %81)
br label %83
83: ; preds = %79, %70
%84 = load i32, i32* %10
%85 = call i32 (i32, ...) bitcast (i32 (...)* @nc_redef to i32 (i32, ...)*)(i32 %84)
store i32 %85, i32* %8
%86 = load i32, i32* %8
%87 = icmp ne i32 %86, 0
br i1 %87, label %88, label %92
88: ; preds = %83
%89 = load i32, i32* %8
%90 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %89)
%91 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 43, i32 %90)
br label %92
92: ; preds = %88, %83
%93 = load i32, i32* %10
%94 = getelementptr inbounds [2 x i32], [2 x i32]* %12, i64 0, i64 0
%95 = call i32 (i32, i8*, i32, i32*, ...) bitcast (i32 (...)* @nc_def_dim to i32 (i32, i8*, i32, i32*, ...)*)(i32 %93, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0), i32 32, i32* %94)
store i32 %95, i32* %8
%96 = load i32, i32* %8
%97 = icmp ne i32 %96, 0
br i1 %97, label %98, label %102
98: ; preds = %92
%99 = load i32, i32* %8
%100 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %99)
%101 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 46, i32 %100)
br label %102
102: ; preds = %98, %92
%103 = load i32, i32* %10
%104 = getelementptr inbounds [2 x i32], [2 x i32]* %12, i64 0, i64 1
%105 = call i32 (i32, i8*, i32, i32*, ...) bitcast (i32 (...)* @nc_def_dim to i32 (i32, i8*, i32, i32*, ...)*)(i32 %103, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0), i32 32, i32* %104)
store i32 %105, i32* %8
%106 = load i32, i32* %8
%107 = icmp ne i32 %106, 0
br i1 %107, label %108, label %112
108: ; preds = %102
%109 = load i32, i32* %8
%110 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %109)
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 47, i32 %110)
br label %112
112: ; preds = %108, %102
%113 = load i32, i32* %10
%114 = getelementptr inbounds [2 x i32], [2 x i32]* %12, i64 0, i64 0
%115 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 3
%116 = call i32 (i32, i8*, i32, i32, i32*, i32*, ...) bitcast (i32 (...)* @nc_def_var to i32 (i32, i8*, i32, i32, i32*, i32*, ...)*)(i32 %113, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0), i32 4, i32 2, i32* %114, i32* %115)
store i32 %116, i32* %8
%117 = load i32, i32* %8
%118 = icmp ne i32 %117, 0
br i1 %118, label %119, label %123
119: ; preds = %112
%120 = load i32, i32* %8
%121 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %120)
%122 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 50, i32 %121)
br label %123
123: ; preds = %119, %112
%124 = load i32, i32* %10
%125 = getelementptr inbounds [2 x i32], [2 x i32]* %12, i64 0, i64 0
%126 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 4
%127 = call i32 (i32, i8*, i32, i32, i32*, i32*, ...) bitcast (i32 (...)* @nc_def_var to i32 (i32, i8*, i32, i32, i32*, i32*, ...)*)(i32 %124, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.8, i64 0, i64 0), i32 5, i32 2, i32* %125, i32* %126)
store i32 %127, i32* %8
%128 = load i32, i32* %8
%129 = icmp ne i32 %128, 0
br i1 %129, label %130, label %134
130: ; preds = %123
%131 = load i32, i32* %8
%132 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %131)
%133 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 51, i32 %132)
br label %134
134: ; preds = %130, %123
%135 = load i32, i32* %10
%136 = call i32 (i32, ...) bitcast (i32 (...)* @nc_enddef to i32 (i32, ...)*)(i32 %135)
store i32 %136, i32* %8
%137 = load i32, i32* %8
%138 = icmp ne i32 %137, 0
br i1 %138, label %139, label %143
139: ; preds = %134
%140 = load i32, i32* %8
%141 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %140)
%142 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 52, i32 %141)
br label %143
143: ; preds = %139, %134
store i32 0, i32* %6
br label %144
144: ; preds = %151, %143
%145 = load i32, i32* %6
%146 = icmp slt i32 %145, 1024
br i1 %146, label %147, label %154
147: ; preds = %144
%148 = load i32, i32* %6
%149 = sext i32 %148 to i64
%150 = getelementptr inbounds [1024 x i32], [1024 x i32]* %15, i64 0, i64 %149
store i32 -1, i32* %150
br label %151
151: ; preds = %147
%152 = load i32, i32* %6
%153 = add nsw i32 %152, 1
store i32 %153, i32* %6
br label %144
154: ; preds = %144
%155 = load i32, i32* %10
%156 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 3
%157 = load i32, i32* %156
%158 = getelementptr inbounds [1024 x i32], [1024 x i32]* %15, i64 0, i64 0
%159 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_put_var_int to i32 (i32, i32, i32*, ...)*)(i32 %155, i32 %157, i32* %158)
store i32 %159, i32* %8
%160 = load i32, i32* %8
%161 = icmp ne i32 %160, 0
br i1 %161, label %162, label %166
162: ; preds = %154
%163 = load i32, i32* %8
%164 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %163)
%165 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 56, i32 %164)
br label %166
166: ; preds = %162, %154
%167 = load i32, i32* %10
%168 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 0
%169 = load i32, i32* %168
%170 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %14, i64 0, i64 0
%171 = getelementptr inbounds [5 x i32], [5 x i32]* %170, i64 0, i64 0
%172 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %167, i32 %169, i32* %171)
store i32 %172, i32* %8
%173 = load i32, i32* %8
%174 = icmp ne i32 %173, 0
br i1 %174, label %175, label %179
175: ; preds = %166
%176 = load i32, i32* %8
%177 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %176)
%178 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 59, i32 %177)
br label %179
179: ; preds = %175, %166
%180 = load i32, i32* %10
%181 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 1
%182 = load i32, i32* %181
%183 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %14, i64 0, i64 1
%184 = getelementptr inbounds [5 x i32], [5 x i32]* %183, i64 0, i64 0
%185 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %180, i32 %182, i32* %184)
store i32 %185, i32* %8
%186 = load i32, i32* %8
%187 = icmp ne i32 %186, 0
br i1 %187, label %188, label %192
188: ; preds = %179
%189 = load i32, i32* %8
%190 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %189)
%191 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 60, i32 %190)
br label %192
192: ; preds = %188, %179
%193 = load i32, i32* %10
%194 = getelementptr inbounds [5 x i32], [5 x i32]* %11, i64 0, i64 2
%195 = load i32, i32* %194
%196 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %14, i64 0, i64 2
%197 = getelementptr inbounds [5 x i32], [5 x i32]* %196, i64 0, i64 0
%198 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %193, i32 %195, i32* %197)
store i32 %198, i32* %8
%199 = load i32, i32* %8
%200 = icmp ne i32 %199, 0
br i1 %200, label %201, label %205
201: ; preds = %192
%202 = load i32, i32* %8
%203 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %202)
%204 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 61, i32 %203)
br label %205
205: ; preds = %201, %192
store i32 0, i32* %9
store i32 0, i32* %6
br label %206
206: ; preds = %259, %205
%207 = load i32, i32* %6
%208 = icmp slt i32 %207, 3
br i1 %208, label %209, label %262
209: ; preds = %206
%210 = getelementptr inbounds [32 x i8], [32 x i8]* %16, i64 0, i64 0
%211 = load i32, i32* %6
%212 = mul nsw i32 2, %211
%213 = add nsw i32 %212, 1
%214 = call i32 (i8*, i8*, ...) @sprintf(i8* %210, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0), i32 %213)
store i32 0, i32* %7
br label %215
215: ; preds = %255, %209
%216 = load i32, i32* %7
%217 = icmp slt i32 %216, 5
br i1 %217, label %218, label %258
218: ; preds = %215
%219 = load i32, i32* %6
%220 = sext i32 %219 to i64
%221 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %14, i64 0, i64 %220
%222 = load i32, i32* %7
%223 = sext i32 %222 to i64
%224 = getelementptr inbounds [5 x i32], [5 x i32]* %221, i64 0, i64 %223
%225 = load i32, i32* %224
%226 = load i32, i32* %6
%227 = sext i32 %226 to i64
%228 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %13, i64 0, i64 %227
%229 = load i32, i32* %7
%230 = sext i32 %229 to i64
%231 = getelementptr inbounds [5 x i32], [5 x i32]* %228, i64 0, i64 %230
%232 = load i32, i32* %231
%233 = icmp ne i32 %225, %232
br i1 %233, label %234, label %254
234: ; preds = %218
%235 = getelementptr inbounds [32 x i8], [32 x i8]* %16, i64 0, i64 0
%236 = load i32, i32* %7
%237 = load i32, i32* %6
%238 = sext i32 %237 to i64
%239 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %13, i64 0, i64 %238
%240 = load i32, i32* %7
%241 = sext i32 %240 to i64
%242 = getelementptr inbounds [5 x i32], [5 x i32]* %239, i64 0, i64 %241
%243 = load i32, i32* %242
%244 = load i32, i32* %6
%245 = sext i32 %244 to i64
%246 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %14, i64 0, i64 %245
%247 = load i32, i32* %7
%248 = sext i32 %247 to i64
%249 = getelementptr inbounds [5 x i32], [5 x i32]* %246, i64 0, i64 %248
%250 = load i32, i32* %249
%251 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([53 x i8], [53 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.11, i64 0, i64 0), i32 70, i8* %235, i32 %236, i32 %243, i32 %250)
%252 = load i32, i32* %9
%253 = add nsw i32 %252, 1
store i32 %253, i32* %9
br label %254
254: ; preds = %234, %218
br label %255
255: ; preds = %254
%256 = load i32, i32* %7
%257 = add nsw i32 %256, 1
store i32 %257, i32* %7
br label %215
258: ; preds = %215
br label %259
259: ; preds = %258
%260 = load i32, i32* %6
%261 = add nsw i32 %260, 1
store i32 %261, i32* %6
br label %206
262: ; preds = %206
%263 = load i32, i32* %10
%264 = call i32 (i32, ...) bitcast (i32 (...)* @nc_close to i32 (i32, ...)*)(i32 %263)
store i32 %264, i32* %8
%265 = load i32, i32* %8
%266 = icmp ne i32 %265, 0
br i1 %266, label %267, label %271
267: ; preds = %262
%268 = load i32, i32* %8
%269 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %268)
%270 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 76, i32 %269)
br label %271
271: ; preds = %267, %262
%272 = load i32, i32* %9
%273 = icmp sgt i32 %272, 0
br i1 %273, label %274, label %275
274: ; preds = %271
unreachable
275: ; preds = %271
ret i32 0
}

LLVM IR (-O2):
@.str = [22 x i8] c"Usage: %s [filename]\0A\00"
@.str.1 = [22 x i8] c"Error at line=%d: %s\0A\00"
@.str.2 = [12 x i8] c"fixed_var_1\00"
@.str.3 = [12 x i8] c"fixed_var_3\00"
@.str.4 = [12 x i8] c"fixed_var_5\00"
@.str.5 = [10 x i8] c"new_dim_1\00"
@.str.6 = [10 x i8] c"new_dim_2\00"
@.str.7 = [9 x i8] c"new_var1\00"
@.str.8 = [9 x i8] c"new_var2\00"
@.str.9 = [13 x i8] c"fixed_var_%d\00"
@.str.10 = [53 x i8] c"Error in %s line %d: expecting %s[%d]=%d but got %d\0A\00"
@.str.11 = [189 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/balborian/libmesh/refs/heads/master/GLM_Executables/GLM_Source/netcdf-c-4.4.1/nc_test/tst_addvar.c\00"
define i32 @main(i32 %0, i8** nocapture %1) {
%3 = alloca i32
%4 = alloca [5 x i32]
%5 = alloca [2 x i32]
%6 = alloca [3 x [5 x i32]]
%7 = alloca [3 x [5 x i32]]
%8 = alloca [1024 x i32]
%9 = bitcast [1024 x i32]* %8 to i8*
%10 = alloca [32 x i8]
%11 = bitcast i32* %3 to i8*
%12 = bitcast [5 x i32]* %4 to i8*
%13 = bitcast [2 x i32]* %5 to i8*
%14 = bitcast [3 x [5 x i32]]* %6 to i8*
%15 = bitcast [3 x [5 x i32]]* %7 to i8*
%16 = icmp eq i32 %0, 2
br i1 %16, label %20, label %17
17: ; preds = %2
%18 = load i8*, i8** %1
%19 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str, i64 0, i64 0), i8* %18)
tail call void @exit(i32 0)
unreachable
20: ; preds = %2
%21 = getelementptr inbounds i8*, i8** %1, i64 1
%22 = load i8*, i8** %21
%23 = call i32 (i8*, i32, i32*, ...) bitcast (i32 (...)* @nc_open to i32 (i8*, i32, i32*, ...)*)(i8* %22, i32 1, i32* %3)
%24 = icmp eq i32 %23, 0
br i1 %24, label %28, label %25
25: ; preds = %20
%26 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %23)
%27 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 33, i32 %26)
br label %28
28: ; preds = %25, %20
%29 = load i32, i32* %3
%30 = getelementptr inbounds [5 x i32], [5 x i32]* %4, i64 0, i64 0
%31 = call i32 (i32, i8*, i32*, ...) bitcast (i32 (...)* @nc_inq_varid to i32 (i32, i8*, i32*, ...)*)(i32 %29, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.2, i64 0, i64 0), i32* %30)
%32 = load i32, i32* %3
%33 = getelementptr inbounds [5 x i32], [5 x i32]* %4, i64 0, i64 1
%34 = call i32 (i32, i8*, i32*, ...) bitcast (i32 (...)* @nc_inq_varid to i32 (i32, i8*, i32*, ...)*)(i32 %32, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i64 0, i64 0), i32* %33)
%35 = load i32, i32* %3
%36 = getelementptr inbounds [5 x i32], [5 x i32]* %4, i64 0, i64 2
%37 = call i32 (i32, i8*, i32*, ...) bitcast (i32 (...)* @nc_inq_varid to i32 (i32, i8*, i32*, ...)*)(i32 %35, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.4, i64 0, i64 0), i32* %36)
%38 = load i32, i32* %3
%39 = load i32, i32* %30
%40 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %6, i64 0, i64 0, i64 0
%41 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %38, i32 %39, i32* %40)
%42 = icmp eq i32 %41, 0
br i1 %42, label %46, label %43
43: ; preds = %28
%44 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %41)
%45 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 39, i32 %44)
br label %46
46: ; preds = %43, %28
%47 = load i32, i32* %3
%48 = load i32, i32* %33
%49 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %6, i64 0, i64 1, i64 0
%50 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %47, i32 %48, i32* %49)
%51 = icmp eq i32 %50, 0
br i1 %51, label %55, label %52
52: ; preds = %46
%53 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %50)
%54 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 40, i32 %53)
br label %55
55: ; preds = %52, %46
%56 = load i32, i32* %3
%57 = load i32, i32* %36
%58 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %6, i64 0, i64 2, i64 0
%59 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %56, i32 %57, i32* %58)
%60 = icmp eq i32 %59, 0
br i1 %60, label %64, label %61
61: ; preds = %55
%62 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %59)
%63 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 41, i32 %62)
br label %64
64: ; preds = %61, %55
%65 = load i32, i32* %3
%66 = call i32 (i32, ...) bitcast (i32 (...)* @nc_redef to i32 (i32, ...)*)(i32 %65)
%67 = icmp eq i32 %66, 0
br i1 %67, label %71, label %68
68: ; preds = %64
%69 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %66)
%70 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 43, i32 %69)
br label %71
71: ; preds = %68, %64
%72 = load i32, i32* %3
%73 = getelementptr inbounds [2 x i32], [2 x i32]* %5, i64 0, i64 0
%74 = call i32 (i32, i8*, i32, i32*, ...) bitcast (i32 (...)* @nc_def_dim to i32 (i32, i8*, i32, i32*, ...)*)(i32 %72, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.5, i64 0, i64 0), i32 32, i32* %73)
%75 = icmp eq i32 %74, 0
br i1 %75, label %79, label %76
76: ; preds = %71
%77 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %74)
%78 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 46, i32 %77)
br label %79
79: ; preds = %76, %71
%80 = load i32, i32* %3
%81 = getelementptr inbounds [2 x i32], [2 x i32]* %5, i64 0, i64 1
%82 = call i32 (i32, i8*, i32, i32*, ...) bitcast (i32 (...)* @nc_def_dim to i32 (i32, i8*, i32, i32*, ...)*)(i32 %80, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i64 0, i64 0), i32 32, i32* %81)
%83 = icmp eq i32 %82, 0
br i1 %83, label %87, label %84
84: ; preds = %79
%85 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %82)
%86 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 47, i32 %85)
br label %87
87: ; preds = %84, %79
%88 = load i32, i32* %3
%89 = getelementptr inbounds [5 x i32], [5 x i32]* %4, i64 0, i64 3
%90 = call i32 (i32, i8*, i32, i32, i32*, i32*, ...) bitcast (i32 (...)* @nc_def_var to i32 (i32, i8*, i32, i32, i32*, i32*, ...)*)(i32 %88, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0), i32 4, i32 2, i32* %73, i32* %89)
%91 = icmp eq i32 %90, 0
br i1 %91, label %95, label %92
92: ; preds = %87
%93 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %90)
%94 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 50, i32 %93)
br label %95
95: ; preds = %92, %87
%96 = load i32, i32* %3
%97 = getelementptr inbounds [5 x i32], [5 x i32]* %4, i64 0, i64 4
%98 = call i32 (i32, i8*, i32, i32, i32*, i32*, ...) bitcast (i32 (...)* @nc_def_var to i32 (i32, i8*, i32, i32, i32*, i32*, ...)*)(i32 %96, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.8, i64 0, i64 0), i32 5, i32 2, i32* %73, i32* %97)
%99 = icmp eq i32 %98, 0
br i1 %99, label %103, label %100
100: ; preds = %95
%101 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %98)
%102 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 51, i32 %101)
br label %103
103: ; preds = %100, %95
%104 = load i32, i32* %3
%105 = call i32 (i32, ...) bitcast (i32 (...)* @nc_enddef to i32 (i32, ...)*)(i32 %104)
%106 = icmp eq i32 %105, 0
br i1 %106, label %110, label %107
107: ; preds = %103
%108 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %105)
%109 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 52, i32 %108)
br label %110
110: ; preds = %107, %103
%111 = load i32, i32* %3
%112 = load i32, i32* %89
%113 = getelementptr inbounds [1024 x i32], [1024 x i32]* %8, i64 0, i64 0
%114 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_put_var_int to i32 (i32, i32, i32*, ...)*)(i32 %111, i32 %112, i32* %113)
%115 = icmp eq i32 %114, 0
br i1 %115, label %119, label %116
116: ; preds = %110
%117 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %114)
%118 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 56, i32 %117)
br label %119
119: ; preds = %116, %110
%120 = load i32, i32* %3
%121 = load i32, i32* %30
%122 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %7, i64 0, i64 0, i64 0
%123 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %120, i32 %121, i32* %122)
%124 = icmp eq i32 %123, 0
br i1 %124, label %128, label %125
125: ; preds = %119
%126 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %123)
%127 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 59, i32 %126)
br label %128
128: ; preds = %125, %119
%129 = load i32, i32* %3
%130 = load i32, i32* %33
%131 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %7, i64 0, i64 1, i64 0
%132 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %129, i32 %130, i32* %131)
%133 = icmp eq i32 %132, 0
br i1 %133, label %137, label %134
134: ; preds = %128
%135 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %132)
%136 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 60, i32 %135)
br label %137
137: ; preds = %134, %128
%138 = load i32, i32* %3
%139 = load i32, i32* %36
%140 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %7, i64 0, i64 2, i64 0
%141 = call i32 (i32, i32, i32*, ...) bitcast (i32 (...)* @nc_get_var_int to i32 (i32, i32, i32*, ...)*)(i32 %138, i32 %139, i32* %140)
%142 = icmp eq i32 %141, 0
br i1 %142, label %146, label %143
143: ; preds = %137
%144 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %141)
%145 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 61, i32 %144)
br label %146
146: ; preds = %143, %137
%147 = getelementptr inbounds [32 x i8], [32 x i8]* %10, i64 0, i64 0
br label %148
148: ; preds = %146, %203
%149 = phi i64 [ 0, %146 ], [ %205, %203 ]
%150 = phi i32 [ 0, %146 ], [ %204, %203 ]
%151 = trunc i64 %149 to i32
%152 = shl i32 %151, 1
%153 = or i32 %152, 1
%154 = call i32 (i8*, i8*, ...) @sprintf(i8* %147, i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0), i32 %153)
%155 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %7, i64 0, i64 %149, i64 0
%156 = load i32, i32* %155
%157 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %6, i64 0, i64 %149, i64 0
%158 = load i32, i32* %157
%159 = icmp eq i32 %156, %158
br i1 %159, label %163, label %160
160: ; preds = %148
%161 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.11, i64 0, i64 0), i32 70, i8* %147, i32 0, i32 %158, i32 %156)
%162 = add nsw i32 %150, 1
br label %163
163: ; preds = %148, %160
%164 = phi i32 [ %162, %160 ], [ %150, %148 ]
%165 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %7, i64 0, i64 %149, i64 1
%166 = load i32, i32* %165
%167 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %6, i64 0, i64 %149, i64 1
%168 = load i32, i32* %167
%169 = icmp eq i32 %166, %168
br i1 %169, label %173, label %170
170: ; preds = %163
%171 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.11, i64 0, i64 0), i32 70, i8* %147, i32 1, i32 %168, i32 %166)
%172 = add nsw i32 %164, 1
br label %173
173: ; preds = %170, %163
%174 = phi i32 [ %172, %170 ], [ %164, %163 ]
%175 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %7, i64 0, i64 %149, i64 2
%176 = load i32, i32* %175
%177 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %6, i64 0, i64 %149, i64 2
%178 = load i32, i32* %177
%179 = icmp eq i32 %176, %178
br i1 %179, label %183, label %180
180: ; preds = %173
%181 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.11, i64 0, i64 0), i32 70, i8* %147, i32 2, i32 %178, i32 %176)
%182 = add nsw i32 %174, 1
br label %183
183: ; preds = %180, %173
%184 = phi i32 [ %182, %180 ], [ %174, %173 ]
%185 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %7, i64 0, i64 %149, i64 3
%186 = load i32, i32* %185
%187 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %6, i64 0, i64 %149, i64 3
%188 = load i32, i32* %187
%189 = icmp eq i32 %186, %188
br i1 %189, label %193, label %190
190: ; preds = %183
%191 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.11, i64 0, i64 0), i32 70, i8* %147, i32 3, i32 %188, i32 %186)
%192 = add nsw i32 %184, 1
br label %193
193: ; preds = %190, %183
%194 = phi i32 [ %192, %190 ], [ %184, %183 ]
%195 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %7, i64 0, i64 %149, i64 4
%196 = load i32, i32* %195
%197 = getelementptr inbounds [3 x [5 x i32]], [3 x [5 x i32]]* %6, i64 0, i64 %149, i64 4
%198 = load i32, i32* %197
%199 = icmp eq i32 %196, %198
br i1 %199, label %203, label %200
200: ; preds = %193
%201 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.11, i64 0, i64 0), i32 70, i8* %147, i32 4, i32 %198, i32 %196)
%202 = add nsw i32 %194, 1
br label %203
203: ; preds = %200, %193
%204 = phi i32 [ %202, %200 ], [ %194, %193 ]
%205 = add nuw nsw i64 %149, 1
%206 = icmp eq i64 %205, 3
br i1 %206, label %207, label %148
207: ; preds = %203
%208 = load i32, i32* %3
%209 = call i32 (i32, ...) bitcast (i32 (...)* @nc_close to i32 (i32, ...)*)(i32 %208)
%210 = icmp eq i32 %209, 0
br i1 %210, label %214, label %211
211: ; preds = %207
%212 = call i32 (i32, ...) bitcast (i32 (...)* @nc_strerror to i32 (i32, ...)*)(i32 %209)
%213 = call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1, i64 0, i64 0), i32 76, i32 %212)
br label %214
214: ; preds = %211, %207
%215 = icmp sgt i32 %204, 0
br i1 %215, label %216, label %217
216: ; preds = %214
unreachable
217: ; preds = %214
ret i32 0
}