#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 */
struct in_addr {
  int s_addr;
};

/* Variables and functions */
int inet_aton(char *, struct in_addr *);
int /*<<< orphan*/ printf(char *, char *, int);
int test_inet_aton(void) {
  struct in_addr in;
  do {
    if (!(1 == inet_aton("127.0.0.1", &in))) {
      printf("expression '%s' untrue at %d\n",
             "1 == inet_aton(\"127.0.0.1\", &in)", 35);
      return 0;
    }
  } while (0);
  do {
    if (!(in.s_addr == 127 + (1 << 24))) {
      printf("expression '%s' untrue at %d\n", "in.s_addr == 127 + (1 << 24)",
             36);
      return 0;
    }
  } while (0);
  do {
    if (!(1 == inet_aton("192.168.254.1", &in))) {
      printf("expression '%s' untrue at %d\n",
             "1 == inet_aton(\"192.168.254.1\", &in)", 37);
      return 0;
    }
  } while (0);
  do {
    if (!(in.s_addr == 192 + (168 << 8) + (254 << 16) + (1 << 24))) {
      printf("expression '%s' untrue at %d\n",
             "in.s_addr == 192 + (168 << 8) + (254 << 16) + (1 << 24)", 38);
      return 0;
    }
  } while (0);
  do {
    if (!(1 == inet_aton("0x7f.1", &in))) {
      printf("expression '%s' untrue at %d\n",
             "1 == inet_aton(\"0x7f.1\", &in)", 39);
      return 0;
    }
  } while (0);
  do {
    if (!(in.s_addr == 127 + (1 << 24))) {
      printf("expression '%s' untrue at %d\n", "in.s_addr == 127 + (1 << 24)",
             40);
      return 0;
    }
  } while (0);
  do {
    if (!(0 == inet_aton("256.2", &in))) {
      printf("expression '%s' untrue at %d\n", "0 == inet_aton(\"256.2\", &in)",
             41);
      return 0;
    }
  } while (0);
  do {
    if (!(0 == inet_aton("256.256.256.1", &in))) {
      printf("expression '%s' untrue at %d\n",
             "0 == inet_aton(\"256.256.256.1\", &in)", 42);
      return 0;
    }
  } while (0);
  do {
    if (!(0 == inet_aton("56.56.256.1", &in))) {
      printf("expression '%s' untrue at %d\n",
             "0 == inet_aton(\"56.56.256.1\", &in)", 43);
      return 0;
    }
  } while (0);
  do {
    if (!(1 == inet_aton("127.1000", &in))) {
      printf("expression '%s' untrue at %d\n",
             "1 == inet_aton(\"127.1000\", &in)", 44);
      return 0;
    }
  } while (0);
  do {
    if (!(in.s_addr == 0xe803007f)) {
      printf("expression '%s' untrue at %d\n", "in.s_addr == 0xe803007f", 45);
      return 0;
    }
  } while (0);
  do {
    if (!(0 == inet_aton("127.1000.1000", &in))) {
      printf("expression '%s' untrue at %d\n",
             "0 == inet_aton(\"127.1000.1000\", &in)", 46);
      return 0;
    }
  } while (0);
  do {
    if (!(1 == inet_aton("127.100.1000", &in))) {
      printf("expression '%s' untrue at %d\n",
             "1 == inet_aton(\"127.100.1000\", &in)", 47);
      return 0;
    }
  } while (0);
  do {
    if (!(in.s_addr == 0xe803647f)) {
      printf("expression '%s' untrue at %d\n", "in.s_addr == 0xe803647f", 48);
      return 0;
    }
  } while (0);
  do {
    if (!(0 == inet_aton("", &in))) {
      printf("expression '%s' untrue at %d\n", "0 == inet_aton(\"\", &in)", 49);
      return 0;
    }
  } while (0);
  do {
    if (!(0 == inet_aton("x", &in))) {
      printf("expression '%s' untrue at %d\n", "0 == inet_aton(\"x\", &in)",
             50);
      return 0;
    }
  } while (0);
  do {
    if (!(1 == inet_aton("1", &in))) {
      printf("expression '%s' untrue at %d\n", "1 == inet_aton(\"1\", &in)",
             51);
      return 0;
    }
  } while (0);
  do {
    if (!(in.s_addr == 0x01000000)) {
      printf("expression '%s' untrue at %d\n", "in.s_addr == 0x01000000", 52);
      return 0;
    }
  } while (0);
  do {
    if (!(1 == inet_aton("0", &in))) {
      printf("expression '%s' untrue at %d\n", "1 == inet_aton(\"0\", &in)",
             53);
      return 0;
    }
  } while (0);
  do {
    if (!(in.s_addr == 0)) {
      printf("expression '%s' untrue at %d\n", "in.s_addr == 0", 54);
      return 0;
    }
  } while (0);
  return 1;
}


x86 assembly (clang, -O0):
<test_inet_aton>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
lea    0xed1(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
je     116b <test_inet_aton+0x4b>
lea    0xebc(%rip),%rdi
lea    0xed3(%rip),%rsi
mov    $0x23,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    1170 <test_inet_aton+0x50>
jmp    1175 <test_inet_aton+0x55>
cmpl   $0x100007f,-0x8(%rbp)
je     11a6 <test_inet_aton+0x86>
lea    0xe81(%rip),%rdi
lea    0xeb9(%rip),%rsi
mov    $0x24,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    11ab <test_inet_aton+0x8b>
jmp    11b0 <test_inet_aton+0x90>
lea    0xeaf(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
je     11f3 <test_inet_aton+0xd3>
lea    0xe34(%rip),%rdi
lea    0xe97(%rip),%rsi
mov    $0x25,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    11f8 <test_inet_aton+0xd8>
jmp    11fd <test_inet_aton+0xdd>
cmpl   $0x1fea8c0,-0x8(%rbp)
je     122e <test_inet_aton+0x10e>
lea    0xdf9(%rip),%rdi
lea    0xe81(%rip),%rsi
mov    $0x26,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    1233 <test_inet_aton+0x113>
jmp    1238 <test_inet_aton+0x118>
lea    0xe92(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
je     127b <test_inet_aton+0x15b>
lea    0xdac(%rip),%rdi
lea    0xe73(%rip),%rsi
mov    $0x27,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    1280 <test_inet_aton+0x160>
jmp    1285 <test_inet_aton+0x165>
cmpl   $0x100007f,-0x8(%rbp)
je     12b6 <test_inet_aton+0x196>
lea    0xd71(%rip),%rdi
lea    0xda9(%rip),%rsi
mov    $0x28,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    12bb <test_inet_aton+0x19b>
jmp    12c0 <test_inet_aton+0x1a0>
lea    0xe2f(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    %ecx,%eax
je     1300 <test_inet_aton+0x1e0>
lea    0xd27(%rip),%rdi
lea    0xe12(%rip),%rsi
mov    $0x29,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    1305 <test_inet_aton+0x1e5>
jmp    130a <test_inet_aton+0x1ea>
lea    0xe08(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    %ecx,%eax
je     134a <test_inet_aton+0x22a>
lea    0xcdd(%rip),%rdi
lea    0xdf3(%rip),%rsi
mov    $0x2a,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    134f <test_inet_aton+0x22f>
jmp    1354 <test_inet_aton+0x234>
lea    0xdf1(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    %ecx,%eax
je     1394 <test_inet_aton+0x274>
lea    0xc93(%rip),%rdi
lea    0xdda(%rip),%rsi
mov    $0x2b,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    1399 <test_inet_aton+0x279>
jmp    139e <test_inet_aton+0x27e>
lea    0xdd6(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
je     13e1 <test_inet_aton+0x2c1>
lea    0xc46(%rip),%rdi
lea    0xdb9(%rip),%rsi
mov    $0x2c,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    13e6 <test_inet_aton+0x2c6>
jmp    13eb <test_inet_aton+0x2cb>
cmpl   $0xe803007f,-0x8(%rbp)
je     141c <test_inet_aton+0x2fc>
lea    0xc0b(%rip),%rdi
lea    0xd9e(%rip),%rsi
mov    $0x2d,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    1421 <test_inet_aton+0x301>
jmp    1426 <test_inet_aton+0x306>
lea    0xd8f(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    %ecx,%eax
je     1466 <test_inet_aton+0x346>
lea    0xbc1(%rip),%rdi
lea    0xd7a(%rip),%rsi
mov    $0x2e,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    146b <test_inet_aton+0x34b>
jmp    1470 <test_inet_aton+0x350>
lea    0xd78(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
je     14b3 <test_inet_aton+0x393>
lea    0xb74(%rip),%rdi
lea    0xd5f(%rip),%rsi
mov    $0x2f,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    14b8 <test_inet_aton+0x398>
jmp    14bd <test_inet_aton+0x39d>
cmpl   $0xe803647f,-0x8(%rbp)
je     14ee <test_inet_aton+0x3ce>
lea    0xb39(%rip),%rdi
lea    0xd48(%rip),%rsi
mov    $0x30,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    14f3 <test_inet_aton+0x3d3>
jmp    14f8 <test_inet_aton+0x3d8>
lea    0xb28(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    %ecx,%eax
je     1538 <test_inet_aton+0x418>
lea    0xaef(%rip),%rdi
lea    0xd16(%rip),%rsi
mov    $0x31,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    153d <test_inet_aton+0x41d>
jmp    1542 <test_inet_aton+0x422>
lea    0xd07(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
xor    %eax,%eax
cmp    %ecx,%eax
je     1582 <test_inet_aton+0x462>
lea    0xaa5(%rip),%rdi
lea    0xce6(%rip),%rsi
mov    $0x32,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    1587 <test_inet_aton+0x467>
jmp    158c <test_inet_aton+0x46c>
lea    0xa75(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
je     15cf <test_inet_aton+0x4af>
lea    0xa58(%rip),%rdi
lea    0xcb2(%rip),%rsi
mov    $0x33,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    15d4 <test_inet_aton+0x4b4>
jmp    15d9 <test_inet_aton+0x4b9>
cmpl   $0x1000000,-0x8(%rbp)
je     160a <test_inet_aton+0x4ea>
lea    0xa1d(%rip),%rdi
lea    0xc90(%rip),%rsi
mov    $0x34,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    160f <test_inet_aton+0x4ef>
jmp    1614 <test_inet_aton+0x4f4>
lea    0xca7(%rip),%rdi
lea    -0x8(%rbp),%rsi
call   1040 <inet_aton@plt>
mov    %eax,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
je     1657 <test_inet_aton+0x537>
lea    0x9d0(%rip),%rdi
lea    0xc5b(%rip),%rsi
mov    $0x35,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    165c <test_inet_aton+0x53c>
jmp    1661 <test_inet_aton+0x541>
cmpl   $0x0,-0x8(%rbp)
je     168f <test_inet_aton+0x56f>
lea    0x998(%rip),%rdi
lea    0xc3c(%rip),%rsi
mov    $0x36,%edx
call   1030 <printf@plt>
movl   $0x0,-0x4(%rbp)
jmp    169b <test_inet_aton+0x57b>
jmp    1694 <test_inet_aton+0x574>
movl   $0x1,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<test_inet_aton>:
push   %rax
lea    0xed8(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
cmp    $0x1,%eax
jne    11bc <test_inet_aton+0x9c>
cmpl   $0x100007f,(%rsp)
jne    11d1 <test_inet_aton+0xb1>
lea    0xf19(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
cmp    $0x1,%eax
jne    11e6 <test_inet_aton+0xc6>
cmpl   $0x1fea8c0,(%rsp)
jne    11fb <test_inet_aton+0xdb>
lea    0xf5f(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
cmp    $0x1,%eax
jne    1210 <test_inet_aton+0xf0>
cmpl   $0x100007f,(%rsp)
jne    1225 <test_inet_aton+0x105>
lea    0xf5f(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
test   %eax,%eax
je     1241 <test_inet_aton+0x121>
lea    0xe5c(%rip),%rdi
lea    0xf47(%rip),%rsi
mov    $0x29,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xe47(%rip),%rdi
lea    0xe5e(%rip),%rsi
mov    $0x23,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xe32(%rip),%rdi
lea    0xe6a(%rip),%rsi
mov    $0x24,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xe1d(%rip),%rdi
lea    0xe80(%rip),%rsi
mov    $0x25,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xe08(%rip),%rdi
lea    0xe90(%rip),%rsi
mov    $0x26,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xdf3(%rip),%rdi
lea    0xeba(%rip),%rsi
mov    $0x27,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xdde(%rip),%rdi
lea    0xe16(%rip),%rsi
mov    $0x28,%edx
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rcx
ret
lea    0xed1(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
test   %eax,%eax
je     1269 <test_inet_aton+0x149>
lea    0xdaf(%rip),%rdi
lea    0xec5(%rip),%rsi
mov    $0x2a,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xedc(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
test   %eax,%eax
je     1291 <test_inet_aton+0x171>
lea    0xd87(%rip),%rdi
lea    0xece(%rip),%rsi
mov    $0x2b,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xee3(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
cmp    $0x1,%eax
jne    12d9 <test_inet_aton+0x1b9>
cmpl   $0xe803007f,(%rsp)
jne    12f1 <test_inet_aton+0x1d1>
lea    0xf07(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
test   %eax,%eax
je     1309 <test_inet_aton+0x1e9>
lea    0xd42(%rip),%rdi
lea    0xefb(%rip),%rsi
mov    $0x2e,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xd2a(%rip),%rdi
lea    0xe9d(%rip),%rsi
mov    $0x2c,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xd12(%rip),%rdi
lea    0xea5(%rip),%rsi
mov    $0x2d,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xedf(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
cmp    $0x1,%eax
jne    1351 <test_inet_aton+0x231>
cmpl   $0xe803647f,(%rsp)
jne    1369 <test_inet_aton+0x249>
lea    0xcfa(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
test   %eax,%eax
je     1381 <test_inet_aton+0x261>
lea    0xcca(%rip),%rdi
lea    0xef1(%rip),%rsi
mov    $0x31,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xcb2(%rip),%rdi
lea    0xe9d(%rip),%rsi
mov    $0x2f,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xc9a(%rip),%rdi
lea    0xea9(%rip),%rsi
mov    $0x30,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xec8(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
test   %eax,%eax
je     13ac <test_inet_aton+0x28c>
lea    0xc6f(%rip),%rdi
lea    0xeb0(%rip),%rsi
mov    $0x32,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xc55(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
cmp    $0x1,%eax
jne    13fb <test_inet_aton+0x2db>
cmpl   $0x1000000,(%rsp)
jne    1413 <test_inet_aton+0x2f3>
lea    0xef2(%rip),%rdi
mov    %rsp,%rsi
call   1040 <inet_aton@plt>
cmp    $0x1,%eax
jne    142b <test_inet_aton+0x30b>
cmpl   $0x0,(%rsp)
je     1443 <test_inet_aton+0x323>
lea    0xc20(%rip),%rdi
lea    0xec4(%rip),%rsi
mov    $0x36,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xc08(%rip),%rdi
lea    0xe62(%rip),%rsi
mov    $0x33,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xbf0(%rip),%rdi
lea    0xe63(%rip),%rsi
mov    $0x34,%edx
jmp    1238 <test_inet_aton+0x118>
lea    0xbd8(%rip),%rdi
lea    0xe63(%rip),%rsi
mov    $0x35,%edx
jmp    1238 <test_inet_aton+0x118>
mov    $0x1,%eax
pop    %rcx
ret

LLVM IR (-O0):
%struct.in_addr = type { i32 }
@.str = [10 x i8] c"127.0.0.1\00"
@.str.1 = [30 x i8] c"expression '%s' untrue at %d\0A\00"
@.str.2 = [33 x i8] c"1 == inet_aton(\22127.0.0.1\22, &in)\00"
@.str.3 = [29 x i8] c"in.s_addr == 127 + (1 << 24)\00"
@.str.4 = [14 x i8] c"192.168.254.1\00"
@.str.5 = [37 x i8] c"1 == inet_aton(\22192.168.254.1\22, &in)\00"
@.str.6 = [56 x i8] c"in.s_addr == 192 + (168 << 8) + (254 << 16) + (1 << 24)\00"
@.str.7 = [7 x i8] c"0x7f.1\00"
@.str.8 = [30 x i8] c"1 == inet_aton(\220x7f.1\22, &in)\00"
@.str.9 = [6 x i8] c"256.2\00"
@.str.10 = [29 x i8] c"0 == inet_aton(\22256.2\22, &in)\00"
@.str.11 = [14 x i8] c"256.256.256.1\00"
@.str.12 = [37 x i8] c"0 == inet_aton(\22256.256.256.1\22, &in)\00"
@.str.13 = [12 x i8] c"56.56.256.1\00"
@.str.14 = [35 x i8] c"0 == inet_aton(\2256.56.256.1\22, &in)\00"
@.str.15 = [9 x i8] c"127.1000\00"
@.str.16 = [32 x i8] c"1 == inet_aton(\22127.1000\22, &in)\00"
@.str.17 = [24 x i8] c"in.s_addr == 0xe803007f\00"
@.str.18 = [14 x i8] c"127.1000.1000\00"
@.str.19 = [37 x i8] c"0 == inet_aton(\22127.1000.1000\22, &in)\00"
@.str.20 = [13 x i8] c"127.100.1000\00"
@.str.21 = [36 x i8] c"1 == inet_aton(\22127.100.1000\22, &in)\00"
@.str.22 = [24 x i8] c"in.s_addr == 0xe803647f\00"
@.str.23 = [1 x i8] zeroinitializer
@.str.24 = [24 x i8] c"0 == inet_aton(\22\22, &in)\00"
@.str.25 = [2 x i8] c"x\00"
@.str.26 = [25 x i8] c"0 == inet_aton(\22x\22, &in)\00"
@.str.27 = [2 x i8] c"1\00"
@.str.28 = [25 x i8] c"1 == inet_aton(\221\22, &in)\00"
@.str.29 = [24 x i8] c"in.s_addr == 0x01000000\00"
@.str.30 = [2 x i8] c"0\00"
@.str.31 = [25 x i8] c"1 == inet_aton(\220\22, &in)\00"
@.str.32 = [15 x i8] c"in.s_addr == 0\00"
define i32 @test_inet_aton() {
%1 = alloca i32
%2 = alloca %struct.in_addr
br label %3
3: ; preds = %0
%4 = call i32 @inet_aton(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), %struct.in_addr* %2)
%5 = icmp eq i32 1, %4
br i1 %5, label %8, label %6
6: ; preds = %3
%7 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.2, i64 0, i64 0), i32 35)
store i32 0, i32* %1
br label %150
8: ; preds = %3
br label %9
9: ; preds = %8
br label %10
10: ; preds = %9
%11 = getelementptr inbounds %struct.in_addr, %struct.in_addr* %2, i32 0, i32 0
%12 = load i32, i32* %11
%13 = icmp eq i32 %12, 16777343
br i1 %13, label %16, label %14
14: ; preds = %10
%15 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.3, i64 0, i64 0), i32 36)
store i32 0, i32* %1
br label %150
16: ; preds = %10
br label %17
17: ; preds = %16
br label %18
18: ; preds = %17
%19 = call i32 @inet_aton(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0), %struct.in_addr* %2)
%20 = icmp eq i32 1, %19
br i1 %20, label %23, label %21
21: ; preds = %18
%22 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.5, i64 0, i64 0), i32 37)
store i32 0, i32* %1
br label %150
23: ; preds = %18
br label %24
24: ; preds = %23
br label %25
25: ; preds = %24
%26 = getelementptr inbounds %struct.in_addr, %struct.in_addr* %2, i32 0, i32 0
%27 = load i32, i32* %26
%28 = icmp eq i32 %27, 33466560
br i1 %28, label %31, label %29
29: ; preds = %25
%30 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.6, i64 0, i64 0), i32 38)
store i32 0, i32* %1
br label %150
31: ; preds = %25
br label %32
32: ; preds = %31
br label %33
33: ; preds = %32
%34 = call i32 @inet_aton(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), %struct.in_addr* %2)
%35 = icmp eq i32 1, %34
br i1 %35, label %38, label %36
36: ; preds = %33
%37 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.8, i64 0, i64 0), i32 39)
store i32 0, i32* %1
br label %150
38: ; preds = %33
br label %39
39: ; preds = %38
br label %40
40: ; preds = %39
%41 = getelementptr inbounds %struct.in_addr, %struct.in_addr* %2, i32 0, i32 0
%42 = load i32, i32* %41
%43 = icmp eq i32 %42, 16777343
br i1 %43, label %46, label %44
44: ; preds = %40
%45 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.3, i64 0, i64 0), i32 40)
store i32 0, i32* %1
br label %150
46: ; preds = %40
br label %47
47: ; preds = %46
br label %48
48: ; preds = %47
%49 = call i32 @inet_aton(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0), %struct.in_addr* %2)
%50 = icmp eq i32 0, %49
br i1 %50, label %53, label %51
51: ; preds = %48
%52 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.10, i64 0, i64 0), i32 41)
store i32 0, i32* %1
br label %150
53: ; preds = %48
br label %54
54: ; preds = %53
br label %55
55: ; preds = %54
%56 = call i32 @inet_aton(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.11, i64 0, i64 0), %struct.in_addr* %2)
%57 = icmp eq i32 0, %56
br i1 %57, label %60, label %58
58: ; preds = %55
%59 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i32 42)
store i32 0, i32* %1
br label %150
60: ; preds = %55
br label %61
61: ; preds = %60
br label %62
62: ; preds = %61
%63 = call i32 @inet_aton(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), %struct.in_addr* %2)
%64 = icmp eq i32 0, %63
br i1 %64, label %67, label %65
65: ; preds = %62
%66 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.14, i64 0, i64 0), i32 43)
store i32 0, i32* %1
br label %150
67: ; preds = %62
br label %68
68: ; preds = %67
br label %69
69: ; preds = %68
%70 = call i32 @inet_aton(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.15, i64 0, i64 0), %struct.in_addr* %2)
%71 = icmp eq i32 1, %70
br i1 %71, label %74, label %72
72: ; preds = %69
%73 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.16, i64 0, i64 0), i32 44)
store i32 0, i32* %1
br label %150
74: ; preds = %69
br label %75
75: ; preds = %74
br label %76
76: ; preds = %75
%77 = getelementptr inbounds %struct.in_addr, %struct.in_addr* %2, i32 0, i32 0
%78 = load i32, i32* %77
%79 = icmp eq i32 %78, -402456449
br i1 %79, label %82, label %80
80: ; preds = %76
%81 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.17, i64 0, i64 0), i32 45)
store i32 0, i32* %1
br label %150
82: ; preds = %76
br label %83
83: ; preds = %82
br label %84
84: ; preds = %83
%85 = call i32 @inet_aton(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.18, i64 0, i64 0), %struct.in_addr* %2)
%86 = icmp eq i32 0, %85
br i1 %86, label %89, label %87
87: ; preds = %84
%88 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.19, i64 0, i64 0), i32 46)
store i32 0, i32* %1
br label %150
89: ; preds = %84
br label %90
90: ; preds = %89
br label %91
91: ; preds = %90
%92 = call i32 @inet_aton(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.20, i64 0, i64 0), %struct.in_addr* %2)
%93 = icmp eq i32 1, %92
br i1 %93, label %96, label %94
94: ; preds = %91
%95 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.21, i64 0, i64 0), i32 47)
store i32 0, i32* %1
br label %150
96: ; preds = %91
br label %97
97: ; preds = %96
br label %98
98: ; preds = %97
%99 = getelementptr inbounds %struct.in_addr, %struct.in_addr* %2, i32 0, i32 0
%100 = load i32, i32* %99
%101 = icmp eq i32 %100, -402430849
br i1 %101, label %104, label %102
102: ; preds = %98
%103 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.22, i64 0, i64 0), i32 48)
store i32 0, i32* %1
br label %150
104: ; preds = %98
br label %105
105: ; preds = %104
br label %106
106: ; preds = %105
%107 = call i32 @inet_aton(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.23, i64 0, i64 0), %struct.in_addr* %2)
%108 = icmp eq i32 0, %107
br i1 %108, label %111, label %109
109: ; preds = %106
%110 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.24, i64 0, i64 0), i32 49)
store i32 0, i32* %1
br label %150
111: ; preds = %106
br label %112
112: ; preds = %111
br label %113
113: ; preds = %112
%114 = call i32 @inet_aton(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.25, i64 0, i64 0), %struct.in_addr* %2)
%115 = icmp eq i32 0, %114
br i1 %115, label %118, label %116
116: ; preds = %113
%117 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.26, i64 0, i64 0), i32 50)
store i32 0, i32* %1
br label %150
118: ; preds = %113
br label %119
119: ; preds = %118
br label %120
120: ; preds = %119
%121 = call i32 @inet_aton(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.27, i64 0, i64 0), %struct.in_addr* %2)
%122 = icmp eq i32 1, %121
br i1 %122, label %125, label %123
123: ; preds = %120
%124 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.28, i64 0, i64 0), i32 51)
store i32 0, i32* %1
br label %150
125: ; preds = %120
br label %126
126: ; preds = %125
br label %127
127: ; preds = %126
%128 = getelementptr inbounds %struct.in_addr, %struct.in_addr* %2, i32 0, i32 0
%129 = load i32, i32* %128
%130 = icmp eq i32 %129, 16777216
br i1 %130, label %133, label %131
131: ; preds = %127
%132 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.29, i64 0, i64 0), i32 52)
store i32 0, i32* %1
br label %150
133: ; preds = %127
br label %134
134: ; preds = %133
br label %135
135: ; preds = %134
%136 = call i32 @inet_aton(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.30, i64 0, i64 0), %struct.in_addr* %2)
%137 = icmp eq i32 1, %136
br i1 %137, label %140, label %138
138: ; preds = %135
%139 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.31, i64 0, i64 0), i32 53)
store i32 0, i32* %1
br label %150
140: ; preds = %135
br label %141
141: ; preds = %140
br label %142
142: ; preds = %141
%143 = getelementptr inbounds %struct.in_addr, %struct.in_addr* %2, i32 0, i32 0
%144 = load i32, i32* %143
%145 = icmp eq i32 %144, 0
br i1 %145, label %148, label %146
146: ; preds = %142
%147 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.32, i64 0, i64 0), i32 54)
store i32 0, i32* %1
br label %150
148: ; preds = %142
br label %149
149: ; preds = %148
store i32 1, i32* %1
br label %150
150: ; preds = %149, %146, %138, %131, %123, %116, %109, %102, %94, %87, %80, %72, %65, %58, %51, %44, %36, %29, %21, %14, %6
%151 = load i32, i32* %1
ret i32 %151
}

LLVM IR (-O2):
%struct.in_addr = type { i32 }
@.str = [10 x i8] c"127.0.0.1\00"
@.str.1 = [30 x i8] c"expression '%s' untrue at %d\0A\00"
@.str.2 = [33 x i8] c"1 == inet_aton(\22127.0.0.1\22, &in)\00"
@.str.3 = [29 x i8] c"in.s_addr == 127 + (1 << 24)\00"
@.str.4 = [14 x i8] c"192.168.254.1\00"
@.str.5 = [37 x i8] c"1 == inet_aton(\22192.168.254.1\22, &in)\00"
@.str.6 = [56 x i8] c"in.s_addr == 192 + (168 << 8) + (254 << 16) + (1 << 24)\00"
@.str.7 = [7 x i8] c"0x7f.1\00"
@.str.8 = [30 x i8] c"1 == inet_aton(\220x7f.1\22, &in)\00"
@.str.9 = [6 x i8] c"256.2\00"
@.str.10 = [29 x i8] c"0 == inet_aton(\22256.2\22, &in)\00"
@.str.11 = [14 x i8] c"256.256.256.1\00"
@.str.12 = [37 x i8] c"0 == inet_aton(\22256.256.256.1\22, &in)\00"
@.str.13 = [12 x i8] c"56.56.256.1\00"
@.str.14 = [35 x i8] c"0 == inet_aton(\2256.56.256.1\22, &in)\00"
@.str.15 = [9 x i8] c"127.1000\00"
@.str.16 = [32 x i8] c"1 == inet_aton(\22127.1000\22, &in)\00"
@.str.17 = [24 x i8] c"in.s_addr == 0xe803007f\00"
@.str.18 = [14 x i8] c"127.1000.1000\00"
@.str.19 = [37 x i8] c"0 == inet_aton(\22127.1000.1000\22, &in)\00"
@.str.20 = [13 x i8] c"127.100.1000\00"
@.str.21 = [36 x i8] c"1 == inet_aton(\22127.100.1000\22, &in)\00"
@.str.22 = [24 x i8] c"in.s_addr == 0xe803647f\00"
@.str.23 = [1 x i8] zeroinitializer
@.str.24 = [24 x i8] c"0 == inet_aton(\22\22, &in)\00"
@.str.25 = [2 x i8] c"x\00"
@.str.26 = [25 x i8] c"0 == inet_aton(\22x\22, &in)\00"
@.str.27 = [2 x i8] c"1\00"
@.str.28 = [25 x i8] c"1 == inet_aton(\221\22, &in)\00"
@.str.29 = [24 x i8] c"in.s_addr == 0x01000000\00"
@.str.30 = [2 x i8] c"0\00"
@.str.31 = [25 x i8] c"1 == inet_aton(\220\22, &in)\00"
@.str.32 = [15 x i8] c"in.s_addr == 0\00"
define i32 @test_inet_aton() {
%1 = alloca %struct.in_addr
%2 = bitcast %struct.in_addr* %1 to i8*
%3 = call i32 @inet_aton(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0), %struct.in_addr* %1)
%4 = icmp eq i32 %3, 1
br i1 %4, label %7, label %5
5: ; preds = %0
%6 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.2, i64 0, i64 0), i32 35)
br label %103
7: ; preds = %0
%8 = getelementptr inbounds %struct.in_addr, %struct.in_addr* %1, i64 0, i32 0
%9 = load i32, i32* %8
%10 = icmp eq i32 %9, 16777343
br i1 %10, label %13, label %11
11: ; preds = %7
%12 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.3, i64 0, i64 0), i32 36)
br label %103
13: ; preds = %7
%14 = call i32 @inet_aton(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.4, i64 0, i64 0), %struct.in_addr* %1)
%15 = icmp eq i32 %14, 1
br i1 %15, label %18, label %16
16: ; preds = %13
%17 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.5, i64 0, i64 0), i32 37)
br label %103
18: ; preds = %13
%19 = load i32, i32* %8
%20 = icmp eq i32 %19, 33466560
br i1 %20, label %23, label %21
21: ; preds = %18
%22 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.6, i64 0, i64 0), i32 38)
br label %103
23: ; preds = %18
%24 = call i32 @inet_aton(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0), %struct.in_addr* %1)
%25 = icmp eq i32 %24, 1
br i1 %25, label %28, label %26
26: ; preds = %23
%27 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.8, i64 0, i64 0), i32 39)
br label %103
28: ; preds = %23
%29 = load i32, i32* %8
%30 = icmp eq i32 %29, 16777343
br i1 %30, label %33, label %31
31: ; preds = %28
%32 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.3, i64 0, i64 0), i32 40)
br label %103
33: ; preds = %28
%34 = call i32 @inet_aton(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.9, i64 0, i64 0), %struct.in_addr* %1)
%35 = icmp eq i32 %34, 0
br i1 %35, label %38, label %36
36: ; preds = %33
%37 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.10, i64 0, i64 0), i32 41)
br label %103
38: ; preds = %33
%39 = call i32 @inet_aton(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.11, i64 0, i64 0), %struct.in_addr* %1)
%40 = icmp eq i32 %39, 0
br i1 %40, label %43, label %41
41: ; preds = %38
%42 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.12, i64 0, i64 0), i32 42)
br label %103
43: ; preds = %38
%44 = call i32 @inet_aton(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.13, i64 0, i64 0), %struct.in_addr* %1)
%45 = icmp eq i32 %44, 0
br i1 %45, label %48, label %46
46: ; preds = %43
%47 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([35 x i8], [35 x i8]* @.str.14, i64 0, i64 0), i32 43)
br label %103
48: ; preds = %43
%49 = call i32 @inet_aton(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.15, i64 0, i64 0), %struct.in_addr* %1)
%50 = icmp eq i32 %49, 1
br i1 %50, label %53, label %51
51: ; preds = %48
%52 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([32 x i8], [32 x i8]* @.str.16, i64 0, i64 0), i32 44)
br label %103
53: ; preds = %48
%54 = load i32, i32* %8
%55 = icmp eq i32 %54, -402456449
br i1 %55, label %58, label %56
56: ; preds = %53
%57 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.17, i64 0, i64 0), i32 45)
br label %103
58: ; preds = %53
%59 = call i32 @inet_aton(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.18, i64 0, i64 0), %struct.in_addr* %1)
%60 = icmp eq i32 %59, 0
br i1 %60, label %63, label %61
61: ; preds = %58
%62 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.19, i64 0, i64 0), i32 46)
br label %103
63: ; preds = %58
%64 = call i32 @inet_aton(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.20, i64 0, i64 0), %struct.in_addr* %1)
%65 = icmp eq i32 %64, 1
br i1 %65, label %68, label %66
66: ; preds = %63
%67 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([36 x i8], [36 x i8]* @.str.21, i64 0, i64 0), i32 47)
br label %103
68: ; preds = %63
%69 = load i32, i32* %8
%70 = icmp eq i32 %69, -402430849
br i1 %70, label %73, label %71
71: ; preds = %68
%72 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.22, i64 0, i64 0), i32 48)
br label %103
73: ; preds = %68
%74 = call i32 @inet_aton(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str.23, i64 0, i64 0), %struct.in_addr* %1)
%75 = icmp eq i32 %74, 0
br i1 %75, label %78, label %76
76: ; preds = %73
%77 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.24, i64 0, i64 0), i32 49)
br label %103
78: ; preds = %73
%79 = call i32 @inet_aton(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.25, i64 0, i64 0), %struct.in_addr* %1)
%80 = icmp eq i32 %79, 0
br i1 %80, label %83, label %81
81: ; preds = %78
%82 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.26, i64 0, i64 0), i32 50)
br label %103
83: ; preds = %78
%84 = call i32 @inet_aton(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.27, i64 0, i64 0), %struct.in_addr* %1)
%85 = icmp eq i32 %84, 1
br i1 %85, label %88, label %86
86: ; preds = %83
%87 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.28, i64 0, i64 0), i32 51)
br label %103
88: ; preds = %83
%89 = load i32, i32* %8
%90 = icmp eq i32 %89, 16777216
br i1 %90, label %93, label %91
91: ; preds = %88
%92 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.29, i64 0, i64 0), i32 52)
br label %103
93: ; preds = %88
%94 = call i32 @inet_aton(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.30, i64 0, i64 0), %struct.in_addr* %1)
%95 = icmp eq i32 %94, 1
br i1 %95, label %98, label %96
96: ; preds = %93
%97 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.31, i64 0, i64 0), i32 53)
br label %103
98: ; preds = %93
%99 = load i32, i32* %8
%100 = icmp eq i32 %99, 0
br i1 %100, label %103, label %101
101: ; preds = %98
%102 = call i32 @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.32, i64 0, i64 0), i32 54)
br label %103
103: ; preds = %98, %101, %96, %91, %86, %81, %76, %71, %66, %61, %56, %51, %46, %41, %36, %31, %26, %21, %16, %11, %5
%104 = phi i32 [ 0, %101 ], [ 0, %96 ], [ 0, %91 ], [ 0, %86 ], [ 0, %81 ], [ 0, %76 ], [ 0, %71 ], [ 0, %66 ], [ 0, %61 ], [ 0, %56 ], [ 0, %51 ], [ 0, %46 ], [ 0, %41 ], [ 0, %36 ], [ 0, %31 ], [ 0, %26 ], [ 0, %21 ], [ 0, %16 ], [ 0, %11 ], [ 0, %5 ], [ 1, %98 ]
ret i32 %104
}