// File: halfflat[P]tinyopt/test/test_version.cc
// Function: version_defines_Test::TestBody()
TEST(version, defines) {
#ifndef TINYOPT_VERSION
    FAIL() << "TINYOPT_VERSION undefined.";
#else
    auto version_str = TINYOPT_VERSION;
    ASSERT_TRUE((std::is_same<const char*, decltype(version_str)>::value));
#endif
#ifndef TINYOPT_VERSION_MAJOR
    FAIL() << "TINYOPT_VERSION_MAJOR undefined.";
#else
    auto version_major = TINYOPT_VERSION_MAJOR;
    ASSERT_TRUE((std::is_same<int, decltype(version_major)>::value));
#endif
#ifndef TINYOPT_VERSION_MINOR
    FAIL() << "TINYOPT_VERSION_MINOR undefined.";
#else
    auto version_minor = TINYOPT_VERSION_MINOR;
    ASSERT_TRUE((std::is_same<int, decltype(version_minor)>::value));
#endif
#ifndef TINYOPT_VERSION_PATCH
    FAIL() << "TINYOPT_VERSION_PATCH undefined.";
#else
    auto version_patch = TINYOPT_VERSION_PATCH;
    ASSERT_TRUE((std::is_same<int, decltype(version_patch)>::value));
#endif
#ifndef TINYOPT_VERSION_PRERELEASE
    FAIL() << "TINYOPT_VERSION_PRERELEASE undefined.";
#else
    auto prerelease_str = TINYOPT_VERSION_PRERELEASE;
    ASSERT_TRUE((std::is_same<const char*, decltype(prerelease_str)>::value));
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x8(%rbp)
leaq 0x57841(%rip), %rax     # 0xcbf37
movq %rax, -0x10(%rbp)
leaq 0x57997(%rip), %rsi     # 0xcc098
xorl %eax, %eax
movl %eax, %edx
leaq -0x20(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x1d4a0
movq -0x190(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x181(%rbp)
jmp 0x74729
movb -0x181(%rbp), %al
testb $0x1, %al
jne 0x74735
jmp 0x7474b
jmp 0x7481a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x7487f
leaq -0x38(%rbp), %rdi
callq 0x84210
jmp 0x74756
leaq 0x577de(%rip), %rdx     # 0xcbf3b
leaq 0x53ceb(%rip), %rcx     # 0xc844f
leaq 0x53cea(%rip), %r8      # 0xc8455
leaq -0x60(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x7d210
jmp 0x7477a
leaq -0x60(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x5775a(%rip), %rdx     # 0xcbee7
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
movl $0xc, %ecx
callq 0x80580
jmp 0x747a2
leaq -0x40(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x7d370
jmp 0x747b1
leaq -0x40(%rbp), %rdi
callq 0x80600
leaq -0x60(%rbp), %rdi
callq 0x10fc8
leaq -0x38(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x74821
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x7480f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74806
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x80600
leaq -0x60(%rbp), %rdi
callq 0x10fc8
leaq -0x38(%rbp), %rdi
callq 0x1d500
jmp 0x7487f
movl $0x0, -0x64(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x1d520
movl -0x64(%rbp), %eax
testl %eax, %eax
je 0x74838
jmp 0x74833
jmp 0x74e28
movl $0x1, -0x68(%rbp)
leaq 0x57852(%rip), %rsi     # 0xcc098
xorl %eax, %eax
movl %eax, %edx
leaq -0x78(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x1d4a0
movq -0x1a0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x191(%rbp)
jmp 0x7486e
movb -0x191(%rbp), %al
testb $0x1, %al
jne 0x7487a
jmp 0x7489e
jmp 0x74985
leaq -0x20(%rbp), %rdi
callq 0x1d520
jmp 0x74e3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x749f0
leaq -0x80(%rbp), %rdi
callq 0x84210
jmp 0x748a9
leaq 0x576c5(%rip), %rdx     # 0xcbf75
leaq 0x53b98(%rip), %rcx     # 0xc844f
leaq 0x53b97(%rip), %r8      # 0xc8455
leaq -0xa8(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x7d210
jmp 0x748d0
leaq -0xa8(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x57601(%rip), %rdx     # 0xcbee7
leaq -0x88(%rbp), %rdi
movl $0x2, %esi
movl $0x12, %ecx
callq 0x80580
jmp 0x748fe
leaq -0x88(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x7d370
jmp 0x74910
leaq -0x88(%rbp), %rdi
callq 0x80600
leaq -0xa8(%rbp), %rdi
callq 0x10fc8
leaq -0x80(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x7498c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x7497a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x7496e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x80600
leaq -0xa8(%rbp), %rdi
callq 0x10fc8
leaq -0x80(%rbp), %rdi
callq 0x1d500
jmp 0x749f0
movl $0x0, -0x64(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x1d520
movl -0x64(%rbp), %eax
testl %eax, %eax
je 0x749a3
jmp 0x7499e
jmp 0x74e28
movl $0x1, -0xac(%rbp)
leaq 0x576e4(%rip), %rsi     # 0xcc098
xorl %eax, %eax
movl %eax, %edx
leaq -0xc0(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
callq 0x1d4a0
movq -0x1b0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x1a1(%rbp)
jmp 0x749df
movb -0x1a1(%rbp), %al
testb $0x1, %al
jne 0x749eb
jmp 0x74a0f
jmp 0x74b05
leaq -0x78(%rbp), %rdi
callq 0x1d520
jmp 0x74e3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74b73
leaq -0xc8(%rbp), %rdi
callq 0x84210
jmp 0x74a1d
leaq 0x57585(%rip), %rdx     # 0xcbfa9
leaq 0x53a24(%rip), %rcx     # 0xc844f
leaq 0x53a23(%rip), %r8      # 0xc8455
leaq -0xf0(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x7d210
jmp 0x74a47
leaq -0xf0(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x5748a(%rip), %rdx     # 0xcbee7
leaq -0xd0(%rbp), %rdi
movl $0x2, %esi
movl $0x18, %ecx
callq 0x80580
jmp 0x74a75
leaq -0xd0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x7d370
jmp 0x74a8a
leaq -0xd0(%rbp), %rdi
callq 0x80600
leaq -0xf0(%rbp), %rdi
callq 0x10fc8
leaq -0xc8(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x74b0c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74af7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74aeb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x80600
leaq -0xf0(%rbp), %rdi
callq 0x10fc8
leaq -0xc8(%rbp), %rdi
callq 0x1d500
jmp 0x74b73
movl $0x0, -0x64(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x1d520
movl -0x64(%rbp), %eax
testl %eax, %eax
je 0x74b26
jmp 0x74b21
jmp 0x74e28
movl $0x0, -0xf4(%rbp)
leaq 0x57561(%rip), %rsi     # 0xcc098
xorl %eax, %eax
movl %eax, %edx
leaq -0x108(%rbp), %rdi
movq %rdi, -0x1c0(%rbp)
callq 0x1d4a0
movq -0x1c0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x1b1(%rbp)
jmp 0x74b62
movb -0x1b1(%rbp), %al
testb $0x1, %al
jne 0x74b6e
jmp 0x74b95
jmp 0x74c8b
leaq -0xc0(%rbp), %rdi
callq 0x1d520
jmp 0x74e3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74cfd
leaq -0x110(%rbp), %rdi
callq 0x84210
jmp 0x74ba3
leaq 0x57433(%rip), %rdx     # 0xcbfdd
leaq 0x5389e(%rip), %rcx     # 0xc844f
leaq 0x5389d(%rip), %r8      # 0xc8455
leaq -0x138(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x7d210
jmp 0x74bcd
leaq -0x138(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x57304(%rip), %rdx     # 0xcbee7
leaq -0x118(%rbp), %rdi
movl $0x2, %esi
movl $0x1e, %ecx
callq 0x80580
jmp 0x74bfb
leaq -0x118(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x7d370
jmp 0x74c10
leaq -0x118(%rbp), %rdi
callq 0x80600
leaq -0x138(%rbp), %rdi
callq 0x10fc8
leaq -0x110(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x74c92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74c7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74c71
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x80600
leaq -0x138(%rbp), %rdi
callq 0x10fc8
leaq -0x110(%rbp), %rdi
callq 0x1d500
jmp 0x74cfd
movl $0x0, -0x64(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x1d520
movl -0x64(%rbp), %eax
testl %eax, %eax
je 0x74cac
jmp 0x74ca7
jmp 0x74e28
leaq 0x56654(%rip), %rax     # 0xcb307
movq %rax, -0x140(%rbp)
leaq 0x573d7(%rip), %rsi     # 0xcc098
xorl %eax, %eax
movl %eax, %edx
leaq -0x150(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x1d4a0
movq -0x1d0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x1c1(%rbp)
jmp 0x74cec
movb -0x1c1(%rbp), %al
testb $0x1, %al
jne 0x74cf8
jmp 0x74d1f
jmp 0x74e15
leaq -0x108(%rbp), %rdi
callq 0x1d520
jmp 0x74e3d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74e31
leaq -0x158(%rbp), %rdi
callq 0x84210
jmp 0x74d2d
leaq 0x572dd(%rip), %rdx     # 0xcc011
leaq 0x53714(%rip), %rcx     # 0xc844f
leaq 0x53713(%rip), %r8      # 0xc8455
leaq -0x180(%rbp), %rdi
leaq -0x150(%rbp), %rsi
callq 0x7d210
jmp 0x74d57
leaq -0x180(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x5717a(%rip), %rdx     # 0xcbee7
leaq -0x160(%rbp), %rdi
movl $0x2, %esi
movl $0x24, %ecx
callq 0x80580
jmp 0x74d85
leaq -0x160(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x7d370
jmp 0x74d9a
leaq -0x160(%rbp), %rdi
callq 0x80600
leaq -0x180(%rbp), %rdi
callq 0x10fc8
leaq -0x158(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x74e1c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74e07
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74dfb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x80600
leaq -0x180(%rbp), %rdi
callq 0x10fc8
leaq -0x158(%rbp), %rdi
callq 0x1d500
jmp 0x74e31
movl $0x0, -0x64(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x1d520
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
leaq -0x150(%rbp), %rdi
callq 0x1d520
movq -0x28(%rbp), %rdi
callq 0x10e00
nopw %cs:(%rax,%rax)