#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */
typedef int /*<<< orphan*/ expected_buf;
typedef int /*<<< orphan*/ buf;

/* Variables and functions */
int EXIT_SUCCESS;
scalar_t__ expect(char *, char *, int /*<<< orphan*/, char *, ...);
char *fwdprintf(char **, int *, char *, ...);
int /*<<< orphan*/ memset(char **, int /*<<< orphan*/, int);
int /*<<< orphan*/ snprintf(char *, int, char *, int);
int test_fwdprintf(void) {
  char *b, buf[8];
  int rem = sizeof(buf);
  memset(&buf, 0, sizeof(buf));
  b = buf;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 3);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "40",
                 0, "%d", fwdprintf(NULL, NULL, "ab%c", 'c')))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 3);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "41",
                 0, "%d", fwdprintf(&b, &rem, "ab%c", 'c')))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    if (expect("abc",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/"
               "heads/master/htrace-c/src/test/string-unit.c"
               " at line "
               "42",
               0, "%s", buf))
      return 1;
  } while (0);
  ;
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 5);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "43",
                 0, "%d", rem))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 0);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "44",
                 0, "%d", fwdprintf(NULL, NULL, "")))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 0);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "45",
                 0, "%d", fwdprintf(&b, &rem, "")))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 5);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "46",
                 0, "%d", rem))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 2);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "47",
                 0, "%d", fwdprintf(NULL, NULL, "de")))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 2);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "48",
                 0, "%d", fwdprintf(&b, &rem, "de")))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    if (expect("abcde",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/"
               "heads/master/htrace-c/src/test/string-unit.c"
               " at line "
               "49",
               0, "%s", buf))
      return 1;
  } while (0);
  ;
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 3);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "50",
                 0, "%d", rem))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 6);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "51",
                 0, "%d", fwdprintf(NULL, NULL, "fghijk")))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 6);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "52",
                 0, "%d", fwdprintf(&b, &rem, "fghijk")))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    char expected_buf[16] = {0};
    snprintf(expected_buf, sizeof(expected_buf), "%d", 0);
    do {
      if (expect(expected_buf,
                 "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
                 "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/"
                 "refs/heads/master/htrace-c/src/test/string-unit.c"
                 " at line "
                 "53",
                 0, "%d", rem))
        return 1;
    } while (0);
    ;
  } while (0);
  ;
  do {
    if (expect("abcdefg",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/"
               "heads/master/htrace-c/src/test/string-unit.c"
               " at line "
               "54",
               0, "%s", buf))
      return 1;
  } while (0);
  ;
  ;
  return EXIT_SUCCESS;
}


x86 assembly (clang, -O0):
<test_fwdprintf>:
push   %rbp
mov    %rsp,%rbp
sub    $0x120,%rsp
movl   $0x8,-0x1c(%rbp)
lea    -0x18(%rbp),%rdi
xor    %esi,%esi
mov    $0x8,%edx
call   1050 <memset@plt>
lea    -0x18(%rbp),%rax
mov    %rax,-0x10(%rbp)
lea    -0x30(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0x30(%rbp),%rdi
mov    $0x10,%esi
lea    0xe76(%rip),%rdx
mov    $0x3,%ecx
call   1040 <snprintf@plt>
lea    -0x30(%rbp),%rax
mov    %rax,-0xe8(%rbp)
xor    %eax,%eax
mov    %eax,%esi
lea    0xf08(%rip),%rdx
mov    $0x63,%ecx
mov    %rsi,%rdi
mov    $0x0,%al
call   1060 <fwdprintf@plt>
mov    -0xe8(%rbp),%rdi
mov    %rax,%r8
lea    0xe39(%rip),%rsi
xor    %edx,%edx
lea    0xe2d(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     11f0 <test_fwdprintf+0xb0>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    11f5 <test_fwdprintf+0xb5>
jmp    11fa <test_fwdprintf+0xba>
jmp    11ff <test_fwdprintf+0xbf>
lea    -0x40(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0x40(%rbp),%rdi
mov    $0x10,%esi
lea    0xde1(%rip),%rdx
mov    $0x3,%ecx
call   1040 <snprintf@plt>
lea    -0x40(%rbp),%rax
mov    %rax,-0xf0(%rbp)
lea    -0x10(%rbp),%rdi
lea    -0x1c(%rbp),%rsi
lea    0xe6f(%rip),%rdx
mov    $0x63,%ecx
mov    $0x0,%al
call   1060 <fwdprintf@plt>
mov    -0xf0(%rbp),%rdi
mov    %rax,%r8
lea    0xe57(%rip),%rsi
xor    %edx,%edx
lea    0xd97(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     1286 <test_fwdprintf+0x146>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    128b <test_fwdprintf+0x14b>
jmp    1290 <test_fwdprintf+0x150>
jmp    1295 <test_fwdprintf+0x155>
lea    -0x18(%rbp),%r8
lea    0xec6(%rip),%rdi
lea    0xec3(%rip),%rsi
xor    %edx,%edx
lea    0xf69(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     12cd <test_fwdprintf+0x18d>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    12d2 <test_fwdprintf+0x192>
jmp    12d7 <test_fwdprintf+0x197>
lea    -0x50(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0x50(%rbp),%rdi
mov    $0x10,%esi
lea    0xd09(%rip),%rdx
mov    $0x5,%ecx
call   1040 <snprintf@plt>
lea    -0x50(%rbp),%rdi
mov    -0x1c(%rbp),%r8d
lea    0xf0c(%rip),%rsi
xor    %edx,%edx
lea    0xce7(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     1336 <test_fwdprintf+0x1f6>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    133b <test_fwdprintf+0x1fb>
jmp    1340 <test_fwdprintf+0x200>
jmp    1345 <test_fwdprintf+0x205>
lea    -0x60(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0x60(%rbp),%rdi
mov    $0x10,%esi
lea    0xc9b(%rip),%rdx
xor    %ecx,%ecx
call   1040 <snprintf@plt>
lea    -0x60(%rbp),%rax
mov    %rax,-0xf8(%rbp)
xor    %eax,%eax
mov    %eax,%esi
lea    0xd2f(%rip),%rdx
mov    %rsi,%rdi
mov    $0x0,%al
call   1060 <fwdprintf@plt>
mov    -0xf8(%rbp),%rdi
mov    %rax,%r8
lea    0xf2e(%rip),%rsi
xor    %edx,%edx
lea    0xc5a(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     13c3 <test_fwdprintf+0x283>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    13c8 <test_fwdprintf+0x288>
jmp    13cd <test_fwdprintf+0x28d>
jmp    13d2 <test_fwdprintf+0x292>
lea    -0x70(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0x70(%rbp),%rdi
mov    $0x10,%esi
lea    0xc0e(%rip),%rdx
xor    %ecx,%ecx
call   1040 <snprintf@plt>
lea    -0x70(%rbp),%rax
mov    %rax,-0x100(%rbp)
lea    -0x10(%rbp),%rdi
lea    -0x1c(%rbp),%rsi
lea    0xc9e(%rip),%rdx
mov    $0x0,%al
call   1060 <fwdprintf@plt>
mov    -0x100(%rbp),%rdi
mov    %rax,%r8
lea    0xf4f(%rip),%rsi
xor    %edx,%edx
lea    0xbcc(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     1451 <test_fwdprintf+0x311>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    1456 <test_fwdprintf+0x316>
jmp    145b <test_fwdprintf+0x31b>
jmp    1460 <test_fwdprintf+0x320>
lea    -0x80(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0x80(%rbp),%rdi
mov    $0x10,%esi
lea    0xb80(%rip),%rdx
mov    $0x5,%ecx
call   1040 <snprintf@plt>
lea    -0x80(%rbp),%rdi
mov    -0x1c(%rbp),%r8d
lea    0xf90(%rip),%rsi
xor    %edx,%edx
lea    0xb5e(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     14bf <test_fwdprintf+0x37f>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    14c4 <test_fwdprintf+0x384>
jmp    14c9 <test_fwdprintf+0x389>
jmp    14ce <test_fwdprintf+0x38e>
lea    -0x90(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0x90(%rbp),%rdi
mov    $0x10,%esi
lea    0xb0c(%rip),%rdx
mov    $0x2,%ecx
call   1040 <snprintf@plt>
lea    -0x90(%rbp),%rax
mov    %rax,-0x108(%rbp)
xor    %eax,%eax
mov    %eax,%esi
lea    0x1122(%rip),%rdx
mov    %rsi,%rdi
mov    $0x0,%al
call   1060 <fwdprintf@plt>
mov    -0x108(%rbp),%rdi
mov    %rax,%r8
lea    0xfa6(%rip),%rsi
xor    %edx,%edx
lea    0xac5(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     1558 <test_fwdprintf+0x418>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    155d <test_fwdprintf+0x41d>
jmp    1562 <test_fwdprintf+0x422>
jmp    1567 <test_fwdprintf+0x427>
lea    -0xa0(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0xa0(%rbp),%rdi
mov    $0x10,%esi
lea    0xa73(%rip),%rdx
mov    $0x2,%ecx
call   1040 <snprintf@plt>
lea    -0xa0(%rbp),%rax
mov    %rax,-0x110(%rbp)
lea    -0x10(%rbp),%rdi
lea    -0x1c(%rbp),%rsi
lea    0x1085(%rip),%rdx
mov    $0x0,%al
call   1060 <fwdprintf@plt>
mov    -0x110(%rbp),%rdi
mov    %rax,%r8
lea    0xfbb(%rip),%rsi
xor    %edx,%edx
lea    0xa2b(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     15f2 <test_fwdprintf+0x4b2>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    15f7 <test_fwdprintf+0x4b7>
jmp    15fc <test_fwdprintf+0x4bc>
jmp    1601 <test_fwdprintf+0x4c1>
lea    -0x18(%rbp),%r8
lea    0x102a(%rip),%rdi
lea    0x1029(%rip),%rsi
xor    %edx,%edx
lea    0xbfd(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     1639 <test_fwdprintf+0x4f9>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    163e <test_fwdprintf+0x4fe>
jmp    1643 <test_fwdprintf+0x503>
lea    -0xb0(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0xb0(%rbp),%rdi
mov    $0x10,%esi
lea    0x997(%rip),%rdx
mov    $0x3,%ecx
call   1040 <snprintf@plt>
lea    -0xb0(%rbp),%rdi
mov    -0x1c(%rbp),%r8d
lea    0x1066(%rip),%rsi
xor    %edx,%edx
lea    0x972(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     16ab <test_fwdprintf+0x56b>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    16b0 <test_fwdprintf+0x570>
jmp    16b5 <test_fwdprintf+0x575>
jmp    16ba <test_fwdprintf+0x57a>
lea    -0xc0(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0xc0(%rbp),%rdi
mov    $0x10,%esi
lea    0x920(%rip),%rdx
mov    $0x6,%ecx
call   1040 <snprintf@plt>
lea    -0xc0(%rbp),%rax
mov    %rax,-0x118(%rbp)
xor    %eax,%eax
mov    %eax,%esi
lea    0x1146(%rip),%rdx
mov    %rsi,%rdi
mov    $0x0,%al
call   1060 <fwdprintf@plt>
mov    -0x118(%rbp),%rdi
mov    %rax,%r8
lea    0x107c(%rip),%rsi
xor    %edx,%edx
lea    0x8d9(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     1744 <test_fwdprintf+0x604>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    1749 <test_fwdprintf+0x609>
jmp    174e <test_fwdprintf+0x60e>
jmp    1753 <test_fwdprintf+0x613>
lea    -0xd0(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0xd0(%rbp),%rdi
mov    $0x10,%esi
lea    0x887(%rip),%rdx
mov    $0x6,%ecx
call   1040 <snprintf@plt>
lea    -0xd0(%rbp),%rax
mov    %rax,-0x120(%rbp)
lea    -0x10(%rbp),%rdi
lea    -0x1c(%rbp),%rsi
lea    0x10a9(%rip),%rdx
mov    $0x0,%al
call   1060 <fwdprintf@plt>
mov    -0x120(%rbp),%rdi
mov    %rax,%r8
lea    0x1098(%rip),%rsi
xor    %edx,%edx
lea    0x83f(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     17de <test_fwdprintf+0x69e>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    17e3 <test_fwdprintf+0x6a3>
jmp    17e8 <test_fwdprintf+0x6a8>
jmp    17ed <test_fwdprintf+0x6ad>
lea    -0xe0(%rbp),%rdi
xor    %esi,%esi
mov    $0x10,%edx
call   1050 <memset@plt>
lea    -0xe0(%rbp),%rdi
mov    $0x10,%esi
lea    0x7ed(%rip),%rdx
xor    %ecx,%ecx
call   1040 <snprintf@plt>
lea    -0xe0(%rbp),%rdi
mov    -0x1c(%rbp),%r8d
lea    0x10d3(%rip),%rsi
xor    %edx,%edx
lea    0x7cb(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     1852 <test_fwdprintf+0x712>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    1857 <test_fwdprintf+0x717>
jmp    185c <test_fwdprintf+0x71c>
jmp    1861 <test_fwdprintf+0x721>
lea    -0x18(%rbp),%r8
lea    0x1142(%rip),%rdi
lea    0x1143(%rip),%rsi
xor    %edx,%edx
lea    0x99d(%rip),%rcx
mov    $0x0,%al
call   1030 <expect@plt>
cmp    $0x0,%rax
je     1899 <test_fwdprintf+0x759>
movl   $0x1,-0x4(%rbp)
jmp    18aa <test_fwdprintf+0x76a>
jmp    189e <test_fwdprintf+0x75e>
mov    0x273b(%rip),%rax
mov    (%rax),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x120,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_fwdprintf>:
push   %rbp
push   %r14
push   %rbx
sub    $0x30,%rsp
movl   $0x8,0xc(%rsp)
lea    0x28(%rsp),%rbx
mov    %rbx,%rdi
xor    %esi,%esi
mov    $0x8,%edx
call   1050 <memset@plt>
mov    %rbx,0x20(%rsp)
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xe98(%rip),%r14
lea    0x10(%rsp),%rbx
mov    %rbx,%rdi
mov    $0x10,%esi
mov    %r14,%rdx
mov    $0x3,%ecx
call   1040 <snprintf@plt>
lea    0xf29(%rip),%rdx
xor    %edi,%edi
xor    %esi,%esi
mov    $0x63,%ecx
xor    %eax,%eax
call   1060 <fwdprintf@plt>
lea    0xe63(%rip),%rsi
mov    %rbx,%rdi
xor    %edx,%edx
mov    %r14,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <expect@plt>
mov    $0x1,%r14d
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xe30(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
mov    $0x3,%ecx
call   1040 <snprintf@plt>
lea    0xec1(%rip),%rdx
lea    0x20(%rsp),%rdi
lea    0xc(%rsp),%rsi
mov    $0x63,%ecx
xor    %eax,%eax
call   1060 <fwdprintf@plt>
lea    0xea9(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
lea    0xf36(%rip),%rdi
lea    0xf33(%rip),%rsi
lea    0xfdb(%rip),%rcx
lea    0x28(%rsp),%r8
xor    %edx,%edx
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xd9c(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
mov    $0x5,%ecx
call   1040 <snprintf@plt>
mov    0xc(%rsp),%r8d
lea    0xf92(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xd4f(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
xor    %ecx,%ecx
call   1040 <snprintf@plt>
lea    0xde2(%rip),%rdx
xor    %edi,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1060 <fwdprintf@plt>
lea    0xfea(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xcf5(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
xor    %ecx,%ecx
call   1040 <snprintf@plt>
lea    0xd88(%rip),%rdx
lea    0x20(%rsp),%rdi
lea    0xc(%rsp),%rsi
xor    %eax,%eax
call   1060 <fwdprintf@plt>
lea    0x1039(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xc95(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
mov    $0x5,%ecx
call   1040 <snprintf@plt>
mov    0xc(%rsp),%r8d
lea    0x1098(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xc48(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
mov    $0x2,%ecx
call   1040 <snprintf@plt>
lea    0x1260(%rip),%rdx
xor    %edi,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1060 <fwdprintf@plt>
lea    0x10ed(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xbeb(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
mov    $0x2,%ecx
call   1040 <snprintf@plt>
lea    0x1203(%rip),%rdx
lea    0x20(%rsp),%rdi
lea    0xc(%rsp),%rsi
xor    %eax,%eax
call   1060 <fwdprintf@plt>
lea    0x1139(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
lea    0x11c6(%rip),%rdi
lea    0x11c5(%rip),%rsi
lea    0xd9b(%rip),%rcx
lea    0x28(%rsp),%r8
xor    %edx,%edx
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xb5c(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
mov    $0x3,%ecx
call   1040 <snprintf@plt>
mov    0xc(%rsp),%r8d
lea    0x1221(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xb0f(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
mov    $0x6,%ecx
call   1040 <snprintf@plt>
lea    0x1337(%rip),%rdx
xor    %edi,%edi
xor    %esi,%esi
xor    %eax,%eax
call   1060 <fwdprintf@plt>
lea    0x1276(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xab2(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
mov    $0x6,%ecx
call   1040 <snprintf@plt>
lea    0x12da(%rip),%rdx
lea    0x20(%rsp),%rdi
lea    0xc(%rsp),%rsi
xor    %eax,%eax
call   1060 <fwdprintf@plt>
lea    0x12c9(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
mov    %rax,%r8
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
xorps  %xmm0,%xmm0
movaps %xmm0,0x10(%rsp)
lea    0xa53(%rip),%rbx
lea    0x10(%rsp),%rbp
mov    %rbp,%rdi
mov    $0x10,%esi
mov    %rbx,%rdx
xor    %ecx,%ecx
call   1040 <snprintf@plt>
mov    0xc(%rsp),%r8d
lea    0x132f(%rip),%rsi
mov    %rbp,%rdi
xor    %edx,%edx
mov    %rbx,%rcx
xor    %eax,%eax
call   1030 <expect@plt>
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
lea    0x13c3(%rip),%rdi
lea    0x13c4(%rip),%rsi
lea    0xc20(%rip),%rcx
lea    0x28(%rsp),%r8
xor    %edx,%edx
xor    %eax,%eax
call   1030 <expect@plt>
mov    $0x1,%r14d
test   %rax,%rax
jne    162c <test_fwdprintf+0x4ec>
mov    0x29b7(%rip),%rax
mov    (%rax),%r14d
mov    %r14d,%eax
add    $0x30,%rsp
pop    %rbx
pop    %r14
pop    %rbp
ret

LLVM IR (-O0):
@.str = [3 x i8] c"%d\00"
@.str.1 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 40\00"
@.str.2 = [5 x i8] c"ab%c\00"
@.str.3 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 41\00"
@.str.4 = [4 x i8] c"abc\00"
@.str.5 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 42\00"
@.str.6 = [3 x i8] c"%s\00"
@.str.7 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 43\00"
@.str.8 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 44\00"
@.str.9 = [1 x i8] zeroinitializer
@.str.10 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 45\00"
@.str.11 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 46\00"
@.str.12 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 47\00"
@.str.13 = [3 x i8] c"de\00"
@.str.14 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 48\00"
@.str.15 = [6 x i8] c"abcde\00"
@.str.16 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 49\00"
@.str.17 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 50\00"
@.str.18 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 51\00"
@.str.19 = [7 x i8] c"fghijk\00"
@.str.20 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 52\00"
@.str.21 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 53\00"
@.str.22 = [8 x i8] c"abcdefg\00"
@.str.23 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 54\00"
@EXIT_SUCCESS = global i32 0
define i32 @test_fwdprintf() {
%1 = alloca i32
%2 = alloca i8*
%3 = alloca [8 x i8]
%4 = alloca i32
%5 = alloca [16 x i8]
%6 = alloca [16 x i8]
%7 = alloca [16 x i8]
%8 = alloca [16 x i8]
%9 = alloca [16 x i8]
%10 = alloca [16 x i8]
%11 = alloca [16 x i8]
%12 = alloca [16 x i8]
%13 = alloca [16 x i8]
%14 = alloca [16 x i8]
%15 = alloca [16 x i8]
%16 = alloca [16 x i8]
store i32 8, i32* %4
%17 = bitcast [8 x i8]* %3 to i8**
%18 = call i32 @memset(i8** %17, i32 0, i32 8)
%19 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 0
store i8* %19, i8** %2
br label %20
20: ; preds = %0
%21 = bitcast [16 x i8]* %5 to i8*
%22 = getelementptr inbounds [16 x i8], [16 x i8]* %5, i64 0, i64 0
%23 = call i32 @snprintf(i8* %22, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 3)
br label %24
24: ; preds = %20
%25 = getelementptr inbounds [16 x i8], [16 x i8]* %5, i64 0, i64 0
%26 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** null, i32* null, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 99)
%27 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %25, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.1, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %26)
%28 = icmp ne i64 %27, 0
br i1 %28, label %29, label %30
29: ; preds = %24
store i32 1, i32* %1
br label %198
30: ; preds = %24
br label %31
31: ; preds = %30
br label %32
32: ; preds = %31
br label %33
33: ; preds = %32
%34 = bitcast [16 x i8]* %6 to i8*
%35 = getelementptr inbounds [16 x i8], [16 x i8]* %6, i64 0, i64 0
%36 = call i32 @snprintf(i8* %35, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 3)
br label %37
37: ; preds = %33
%38 = getelementptr inbounds [16 x i8], [16 x i8]* %6, i64 0, i64 0
%39 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** %2, i32* %4, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 99)
%40 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %38, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.3, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %39)
%41 = icmp ne i64 %40, 0
br i1 %41, label %42, label %43
42: ; preds = %37
store i32 1, i32* %1
br label %198
43: ; preds = %37
br label %44
44: ; preds = %43
br label %45
45: ; preds = %44
br label %46
46: ; preds = %45
%47 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 0
%48 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.5, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0), i8* %47)
%49 = icmp ne i64 %48, 0
br i1 %49, label %50, label %51
50: ; preds = %46
store i32 1, i32* %1
br label %198
51: ; preds = %46
br label %52
52: ; preds = %51
br label %53
53: ; preds = %52
%54 = bitcast [16 x i8]* %7 to i8*
%55 = getelementptr inbounds [16 x i8], [16 x i8]* %7, i64 0, i64 0
%56 = call i32 @snprintf(i8* %55, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 5)
br label %57
57: ; preds = %53
%58 = getelementptr inbounds [16 x i8], [16 x i8]* %7, i64 0, i64 0
%59 = load i32, i32* %4
%60 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %58, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.7, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 %59)
%61 = icmp ne i64 %60, 0
br i1 %61, label %62, label %63
62: ; preds = %57
store i32 1, i32* %1
br label %198
63: ; preds = %57
br label %64
64: ; preds = %63
br label %65
65: ; preds = %64
br label %66
66: ; preds = %65
%67 = bitcast [16 x i8]* %8 to i8*
%68 = getelementptr inbounds [16 x i8], [16 x i8]* %8, i64 0, i64 0
%69 = call i32 @snprintf(i8* %68, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 0)
br label %70
70: ; preds = %66
%71 = getelementptr inbounds [16 x i8], [16 x i8]* %8, i64 0, i64 0
%72 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** null, i32* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.9, i64 0, i64 0))
%73 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %71, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.8, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %72)
%74 = icmp ne i64 %73, 0
br i1 %74, label %75, label %76
75: ; preds = %70
store i32 1, i32* %1
br label %198
76: ; preds = %70
br label %77
77: ; preds = %76
br label %78
78: ; preds = %77
br label %79
79: ; preds = %78
%80 = bitcast [16 x i8]* %9 to i8*
%81 = getelementptr inbounds [16 x i8], [16 x i8]* %9, i64 0, i64 0
%82 = call i32 @snprintf(i8* %81, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 0)
br label %83
83: ; preds = %79
%84 = getelementptr inbounds [16 x i8], [16 x i8]* %9, i64 0, i64 0
%85 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** %2, i32* %4, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.9, i64 0, i64 0))
%86 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %84, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.10, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %85)
%87 = icmp ne i64 %86, 0
br i1 %87, label %88, label %89
88: ; preds = %83
store i32 1, i32* %1
br label %198
89: ; preds = %83
br label %90
90: ; preds = %89
br label %91
91: ; preds = %90
br label %92
92: ; preds = %91
%93 = bitcast [16 x i8]* %10 to i8*
%94 = getelementptr inbounds [16 x i8], [16 x i8]* %10, i64 0, i64 0
%95 = call i32 @snprintf(i8* %94, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 5)
br label %96
96: ; preds = %92
%97 = getelementptr inbounds [16 x i8], [16 x i8]* %10, i64 0, i64 0
%98 = load i32, i32* %4
%99 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %97, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.11, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 %98)
%100 = icmp ne i64 %99, 0
br i1 %100, label %101, label %102
101: ; preds = %96
store i32 1, i32* %1
br label %198
102: ; preds = %96
br label %103
103: ; preds = %102
br label %104
104: ; preds = %103
br label %105
105: ; preds = %104
%106 = bitcast [16 x i8]* %11 to i8*
%107 = getelementptr inbounds [16 x i8], [16 x i8]* %11, i64 0, i64 0
%108 = call i32 @snprintf(i8* %107, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 2)
br label %109
109: ; preds = %105
%110 = getelementptr inbounds [16 x i8], [16 x i8]* %11, i64 0, i64 0
%111 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** null, i32* null, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
%112 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %110, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.12, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %111)
%113 = icmp ne i64 %112, 0
br i1 %113, label %114, label %115
114: ; preds = %109
store i32 1, i32* %1
br label %198
115: ; preds = %109
br label %116
116: ; preds = %115
br label %117
117: ; preds = %116
br label %118
118: ; preds = %117
%119 = bitcast [16 x i8]* %12 to i8*
%120 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%121 = call i32 @snprintf(i8* %120, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 2)
br label %122
122: ; preds = %118
%123 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%124 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** %2, i32* %4, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
%125 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %123, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.14, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %124)
%126 = icmp ne i64 %125, 0
br i1 %126, label %127, label %128
127: ; preds = %122
store i32 1, i32* %1
br label %198
128: ; preds = %122
br label %129
129: ; preds = %128
br label %130
130: ; preds = %129
br label %131
131: ; preds = %130
%132 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 0
%133 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.16, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0), i8* %132)
%134 = icmp ne i64 %133, 0
br i1 %134, label %135, label %136
135: ; preds = %131
store i32 1, i32* %1
br label %198
136: ; preds = %131
br label %137
137: ; preds = %136
br label %138
138: ; preds = %137
%139 = bitcast [16 x i8]* %13 to i8*
%140 = getelementptr inbounds [16 x i8], [16 x i8]* %13, i64 0, i64 0
%141 = call i32 @snprintf(i8* %140, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 3)
br label %142
142: ; preds = %138
%143 = getelementptr inbounds [16 x i8], [16 x i8]* %13, i64 0, i64 0
%144 = load i32, i32* %4
%145 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %143, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.17, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 %144)
%146 = icmp ne i64 %145, 0
br i1 %146, label %147, label %148
147: ; preds = %142
store i32 1, i32* %1
br label %198
148: ; preds = %142
br label %149
149: ; preds = %148
br label %150
150: ; preds = %149
br label %151
151: ; preds = %150
%152 = bitcast [16 x i8]* %14 to i8*
%153 = getelementptr inbounds [16 x i8], [16 x i8]* %14, i64 0, i64 0
%154 = call i32 @snprintf(i8* %153, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 6)
br label %155
155: ; preds = %151
%156 = getelementptr inbounds [16 x i8], [16 x i8]* %14, i64 0, i64 0
%157 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** null, i32* null, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0))
%158 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %156, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.18, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %157)
%159 = icmp ne i64 %158, 0
br i1 %159, label %160, label %161
160: ; preds = %155
store i32 1, i32* %1
br label %198
161: ; preds = %155
br label %162
162: ; preds = %161
br label %163
163: ; preds = %162
br label %164
164: ; preds = %163
%165 = bitcast [16 x i8]* %15 to i8*
%166 = getelementptr inbounds [16 x i8], [16 x i8]* %15, i64 0, i64 0
%167 = call i32 @snprintf(i8* %166, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 6)
br label %168
168: ; preds = %164
%169 = getelementptr inbounds [16 x i8], [16 x i8]* %15, i64 0, i64 0
%170 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** %2, i32* %4, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0))
%171 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %169, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.20, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %170)
%172 = icmp ne i64 %171, 0
br i1 %172, label %173, label %174
173: ; preds = %168
store i32 1, i32* %1
br label %198
174: ; preds = %168
br label %175
175: ; preds = %174
br label %176
176: ; preds = %175
br label %177
177: ; preds = %176
%178 = bitcast [16 x i8]* %16 to i8*
%179 = getelementptr inbounds [16 x i8], [16 x i8]* %16, i64 0, i64 0
%180 = call i32 @snprintf(i8* %179, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 0)
br label %181
181: ; preds = %177
%182 = getelementptr inbounds [16 x i8], [16 x i8]* %16, i64 0, i64 0
%183 = load i32, i32* %4
%184 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %182, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.21, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 %183)
%185 = icmp ne i64 %184, 0
br i1 %185, label %186, label %187
186: ; preds = %181
store i32 1, i32* %1
br label %198
187: ; preds = %181
br label %188
188: ; preds = %187
br label %189
189: ; preds = %188
br label %190
190: ; preds = %189
%191 = getelementptr inbounds [8 x i8], [8 x i8]* %3, i64 0, i64 0
%192 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.23, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0), i8* %191)
%193 = icmp ne i64 %192, 0
br i1 %193, label %194, label %195
194: ; preds = %190
store i32 1, i32* %1
br label %198
195: ; preds = %190
br label %196
196: ; preds = %195
%197 = load i32, i32* @EXIT_SUCCESS
store i32 %197, i32* %1
br label %198
198: ; preds = %196, %194, %186, %173, %160, %147, %135, %127, %114, %101, %88, %75, %62, %50, %42, %29
%199 = load i32, i32* %1
ret i32 %199
}

LLVM IR (-O2):
@.str = [3 x i8] c"%d\00"
@.str.1 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 40\00"
@.str.2 = [5 x i8] c"ab%c\00"
@.str.3 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 41\00"
@.str.4 = [4 x i8] c"abc\00"
@.str.5 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 42\00"
@.str.6 = [3 x i8] c"%s\00"
@.str.7 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 43\00"
@.str.8 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 44\00"
@.str.9 = [1 x i8] zeroinitializer
@.str.10 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 45\00"
@.str.11 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 46\00"
@.str.12 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 47\00"
@.str.13 = [3 x i8] c"de\00"
@.str.14 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 48\00"
@.str.15 = [6 x i8] c"abcde\00"
@.str.16 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 49\00"
@.str.17 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 50\00"
@.str.18 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 51\00"
@.str.19 = [7 x i8] c"fghijk\00"
@.str.20 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 52\00"
@.str.21 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 53\00"
@.str.22 = [8 x i8] c"abcdefg\00"
@.str.23 = [175 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/apache/incubator-htrace/refs/heads/master/htrace-c/src/test/string-unit.c at line 54\00"
@EXIT_SUCCESS = global i32 0
define i32 @test_fwdprintf() {
%1 = alloca i8*
%2 = alloca i8*
%3 = alloca i32
%4 = alloca [16 x i8]
%5 = alloca [16 x i8]
%6 = alloca [16 x i8]
%7 = alloca [16 x i8]
%8 = alloca [16 x i8]
%9 = alloca [16 x i8]
%10 = alloca [16 x i8]
%11 = alloca [16 x i8]
%12 = alloca [16 x i8]
%13 = alloca [16 x i8]
%14 = alloca [16 x i8]
%15 = alloca [16 x i8]
%16 = bitcast i8** %1 to i8*
%17 = bitcast i8** %2 to i8*
%18 = bitcast i32* %3 to i8*
store i32 8, i32* %3
%19 = call i32 @memset(i8** %2, i32 0, i32 8)
%20 = bitcast i8** %1 to i8***
store i8** %2, i8*** %20
%21 = getelementptr inbounds [16 x i8], [16 x i8]* %4, i64 0, i64 0
%22 = call i32 @snprintf(i8* %21, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 3)
%23 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** null, i32* null, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 99)
%24 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %21, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.1, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %23)
%25 = icmp eq i64 %24, 0
br i1 %25, label %26, label %103
26: ; preds = %0
%27 = getelementptr inbounds [16 x i8], [16 x i8]* %5, i64 0, i64 0
%28 = call i32 @snprintf(i8* %27, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 3)
%29 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** %1, i32* %3, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.2, i64 0, i64 0), i32 99)
%30 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %27, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.3, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %29)
%31 = icmp eq i64 %30, 0
br i1 %31, label %32, label %103
32: ; preds = %26
%33 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.5, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0), i8** %2)
%34 = icmp eq i64 %33, 0
br i1 %34, label %35, label %103
35: ; preds = %32
%36 = getelementptr inbounds [16 x i8], [16 x i8]* %6, i64 0, i64 0
%37 = call i32 @snprintf(i8* %36, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 5)
%38 = load i32, i32* %3
%39 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %36, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.7, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 %38)
%40 = icmp eq i64 %39, 0
br i1 %40, label %41, label %103
41: ; preds = %35
%42 = getelementptr inbounds [16 x i8], [16 x i8]* %7, i64 0, i64 0
%43 = call i32 @snprintf(i8* %42, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 0)
%44 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** null, i32* null, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.9, i64 0, i64 0))
%45 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %42, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.8, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %44)
%46 = icmp eq i64 %45, 0
br i1 %46, label %47, label %103
47: ; preds = %41
%48 = getelementptr inbounds [16 x i8], [16 x i8]* %8, i64 0, i64 0
%49 = call i32 @snprintf(i8* %48, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 0)
%50 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** %1, i32* %3, i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.9, i64 0, i64 0))
%51 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %48, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.10, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %50)
%52 = icmp eq i64 %51, 0
br i1 %52, label %53, label %103
53: ; preds = %47
%54 = getelementptr inbounds [16 x i8], [16 x i8]* %9, i64 0, i64 0
%55 = call i32 @snprintf(i8* %54, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 5)
%56 = load i32, i32* %3
%57 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %54, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.11, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 %56)
%58 = icmp eq i64 %57, 0
br i1 %58, label %59, label %103
59: ; preds = %53
%60 = getelementptr inbounds [16 x i8], [16 x i8]* %10, i64 0, i64 0
%61 = call i32 @snprintf(i8* %60, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 2)
%62 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** null, i32* null, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
%63 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %60, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.12, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %62)
%64 = icmp eq i64 %63, 0
br i1 %64, label %65, label %103
65: ; preds = %59
%66 = getelementptr inbounds [16 x i8], [16 x i8]* %11, i64 0, i64 0
%67 = call i32 @snprintf(i8* %66, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 2)
%68 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** %1, i32* %3, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.13, i64 0, i64 0))
%69 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %66, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.14, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %68)
%70 = icmp eq i64 %69, 0
br i1 %70, label %71, label %103
71: ; preds = %65
%72 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.16, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0), i8** %2)
%73 = icmp eq i64 %72, 0
br i1 %73, label %74, label %103
74: ; preds = %71
%75 = getelementptr inbounds [16 x i8], [16 x i8]* %12, i64 0, i64 0
%76 = call i32 @snprintf(i8* %75, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 3)
%77 = load i32, i32* %3
%78 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %75, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.17, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 %77)
%79 = icmp eq i64 %78, 0
br i1 %79, label %80, label %103
80: ; preds = %74
%81 = getelementptr inbounds [16 x i8], [16 x i8]* %13, i64 0, i64 0
%82 = call i32 @snprintf(i8* %81, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 6)
%83 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** null, i32* null, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0))
%84 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %81, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.18, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %83)
%85 = icmp eq i64 %84, 0
br i1 %85, label %86, label %103
86: ; preds = %80
%87 = getelementptr inbounds [16 x i8], [16 x i8]* %14, i64 0, i64 0
%88 = call i32 @snprintf(i8* %87, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 6)
%89 = call i8* (i8**, i32*, i8*, ...) @fwdprintf(i8** %1, i32* %3, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0))
%90 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %87, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.20, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %89)
%91 = icmp eq i64 %90, 0
br i1 %91, label %92, label %103
92: ; preds = %86
%93 = getelementptr inbounds [16 x i8], [16 x i8]* %15, i64 0, i64 0
%94 = call i32 @snprintf(i8* %93, i32 16, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 0)
%95 = load i32, i32* %3
%96 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* %93, i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.21, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i32 %95)
%97 = icmp eq i64 %96, 0
br i1 %97, label %98, label %103
98: ; preds = %92
%99 = call i64 (i8*, i8*, i32, i8*, ...) @expect(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.22, i64 0, i64 0), i8* getelementptr inbounds ([175 x i8], [175 x i8]* @.str.23, i64 0, i64 0), i32 0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0), i8** %2)
%100 = icmp eq i64 %99, 0
%101 = load i32, i32* @EXIT_SUCCESS
%102 = select i1 %100, i32 %101, i32 1
br label %103
103: ; preds = %98, %71, %32, %92, %86, %80, %74, %65, %59, %53, %47, %41, %35, %26, %0
%104 = phi i32 [ 1, %92 ], [ 1, %86 ], [ 1, %80 ], [ 1, %74 ], [ 1, %65 ], [ 1, %59 ], [ 1, %53 ], [ 1, %47 ], [ 1, %41 ], [ 1, %35 ], [ 1, %26 ], [ 1, %0 ], [ 1, %32 ], [ 1, %71 ], [ %102, %98 ]
ret i32 %104
}