// File: halfflat[P]tinyopt/test/test_version.cc
// Function: version_consistent_Test::TestBody()
TEST(version, consistent) {
#if defined(TINYOPT_VERSION) && defined(TINYOPT_VERSION_MAJOR) && defined(TINYOPT_VERSION_MINOR) && defined(TINYOPT_VERSION_PATCH) && defined(TINYOPT_VERSION_PRERELEASE)
    ASSERT_TRUE(TINYOPT_VERSION_MAJOR>=0);
    ASSERT_TRUE(TINYOPT_VERSION_MINOR>=0);
    ASSERT_TRUE(TINYOPT_VERSION_PATCH>=0);

    std::stringstream version_nopatch, version;
    version_nopatch << TINYOPT_VERSION_MAJOR << "." << TINYOPT_VERSION_MINOR;
    version << TINYOPT_VERSION_MAJOR << "." << TINYOPT_VERSION_MINOR << "." << TINYOPT_VERSION_PATCH;

    std::stringstream pre;
    pre << TINYOPT_VERSION_PRERELEASE;
    if (!pre.str().empty()) {
        version_nopatch << "-" << TINYOPT_VERSION_PRERELEASE;
        version << "-" << TINYOPT_VERSION_PRERELEASE;
    }

    if (TINYOPT_VERSION_PATCH>0) {
        ASSERT_EQ(version.str(), TINYOPT_VERSION);
    }
    else {
        ASSERT_TRUE(version_nopatch.str()==TINYOPT_VERSION || version.str()==TINYOPT_VERSION);
    }
#else
    FAIL() << "Missing version defines.";
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x6c0, %rsp            # imm = 0x6C0
movq %rdi, -0x8(%rbp)
movb $0x1, -0x19(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x18(%rbp), %rdi
movq %rdi, -0x650(%rbp)
leaq -0x19(%rbp), %rsi
callq 0x1d4a0
movq -0x650(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x641(%rbp)
jmp 0x74e8f
movb -0x641(%rbp), %al
testb $0x1, %al
jne 0x74e9b
jmp 0x74eb1
jmp 0x74f80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74fdf
leaq -0x38(%rbp), %rdi
callq 0x84210
jmp 0x74ebc
leaq 0x57196(%rip), %rdx     # 0xcc059
leaq 0x53585(%rip), %rcx     # 0xc844f
leaq 0x53584(%rip), %r8      # 0xc8455
leaq -0x60(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x7d210
jmp 0x74ee0
leaq -0x60(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x56ff4(%rip), %rdx     # 0xcbee7
leaq -0x40(%rbp), %rdi
movl $0x2, %esi
movl $0x2a, %ecx
callq 0x80580
jmp 0x74f08
leaq -0x40(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x7d370
jmp 0x74f17
leaq -0x40(%rbp), %rdi
callq 0x80600
leaq -0x60(%rbp), %rdi
callq 0x10fc8
leaq -0x38(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x74f87
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74f75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x74f6c
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 0x74fdf
movl $0x0, -0x64(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x1d520
movl -0x64(%rbp), %eax
testl %eax, %eax
je 0x74f9e
jmp 0x74f99
jmp 0x75712
movb $0x1, -0x79(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x78(%rbp), %rdi
movq %rdi, -0x660(%rbp)
leaq -0x79(%rbp), %rsi
callq 0x1d4a0
movq -0x660(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x651(%rbp)
jmp 0x74fce
movb -0x651(%rbp), %al
testb $0x1, %al
jne 0x74fda
jmp 0x74ffe
jmp 0x750f1
leaq -0x18(%rbp), %rdi
callq 0x1d520
jmp 0x7574b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x75159
leaq -0x88(%rbp), %rdi
callq 0x84210
jmp 0x7500c
leaq 0x57046(%rip), %rdx     # 0xcc059
leaq 0x53435(%rip), %rcx     # 0xc844f
leaq 0x53434(%rip), %r8      # 0xc8455
leaq -0xb0(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x7d210
jmp 0x75033
leaq -0xb0(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x56e9e(%rip), %rdx     # 0xcbee7
leaq -0x90(%rbp), %rdi
movl $0x2, %esi
movl $0x2b, %ecx
callq 0x80580
jmp 0x75061
leaq -0x90(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x7d370
jmp 0x75076
leaq -0x90(%rbp), %rdi
callq 0x80600
leaq -0xb0(%rbp), %rdi
callq 0x10fc8
leaq -0x88(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x750f8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x750e3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x750d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x80600
leaq -0xb0(%rbp), %rdi
callq 0x10fc8
leaq -0x88(%rbp), %rdi
callq 0x1d500
jmp 0x75159
movl $0x0, -0x64(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x1d520
movl -0x64(%rbp), %eax
testl %eax, %eax
je 0x7510f
jmp 0x7510a
jmp 0x75712
movb $0x1, -0xc1(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0xc0(%rbp), %rdi
movq %rdi, -0x670(%rbp)
leaq -0xc1(%rbp), %rsi
callq 0x1d4a0
movq -0x670(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x661(%rbp)
jmp 0x75148
movb -0x661(%rbp), %al
testb $0x1, %al
jne 0x75154
jmp 0x75178
jmp 0x75271
leaq -0x78(%rbp), %rdi
callq 0x1d520
jmp 0x7574b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x7543c
leaq -0xd0(%rbp), %rdi
callq 0x84210
jmp 0x75186
leaq 0x56ed1(%rip), %rdx     # 0xcc05e
leaq 0x532bb(%rip), %rcx     # 0xc844f
leaq 0x532ba(%rip), %r8      # 0xc8455
leaq -0xf8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x7d210
jmp 0x751b0
leaq -0xf8(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x56d21(%rip), %rdx     # 0xcbee7
leaq -0xd8(%rbp), %rdi
movl $0x2, %esi
movl $0x2c, %ecx
callq 0x80580
jmp 0x751de
leaq -0xd8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x7d370
jmp 0x751f3
leaq -0xd8(%rbp), %rdi
callq 0x80600
leaq -0xf8(%rbp), %rdi
callq 0x10fc8
leaq -0xd0(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x75278
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x75260
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x75254
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x80600
leaq -0xf8(%rbp), %rdi
callq 0x10fc8
leaq -0xd0(%rbp), %rdi
callq 0x1d500
jmp 0x7543c
movl $0x0, -0x64(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x1d520
movl -0x64(%rbp), %eax
testl %eax, %eax
je 0x75292
jmp 0x7528d
jmp 0x75712
leaq -0x280(%rbp), %rdi
callq 0x10500
leaq -0x408(%rbp), %rdi
callq 0x10500
jmp 0x752ac
leaq -0x270(%rbp), %rdi
movl $0x1, %esi
callq 0x10de0
movq %rax, -0x678(%rbp)
jmp 0x752c6
movq -0x678(%rbp), %rdi
leaq 0x547af(%rip), %rsi     # 0xc9a83
callq 0x10720
movq %rax, -0x680(%rbp)
jmp 0x752e2
movq -0x680(%rbp), %rdi
movl $0x1, %esi
callq 0x10de0
jmp 0x752f5
leaq -0x3f8(%rbp), %rdi
movl $0x1, %esi
callq 0x10de0
movq %rax, -0x688(%rbp)
jmp 0x7530f
movq -0x688(%rbp), %rdi
leaq 0x54766(%rip), %rsi     # 0xc9a83
callq 0x10720
movq %rax, -0x690(%rbp)
jmp 0x7532b
movq -0x690(%rbp), %rdi
movl $0x1, %esi
callq 0x10de0
movq %rax, -0x698(%rbp)
jmp 0x75345
movq -0x698(%rbp), %rdi
leaq 0x54730(%rip), %rsi     # 0xc9a83
callq 0x10720
movq %rax, -0x6a0(%rbp)
jmp 0x75361
movq -0x6a0(%rbp), %rdi
xorl %esi, %esi
callq 0x10de0
jmp 0x75371
leaq -0x590(%rbp), %rdi
callq 0x10500
jmp 0x7537f
leaq -0x580(%rbp), %rdi
leaq 0x55f7a(%rip), %rsi     # 0xcb307
callq 0x10720
jmp 0x75394
leaq -0x5b0(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x10710
jmp 0x753a9
leaq -0x5b0(%rbp), %rdi
callq 0x10d70
xorb $-0x1, %al
movb %al, -0x6a1(%rbp)
leaq -0x5b0(%rbp), %rdi
callq 0x10fc8
movb -0x6a1(%rbp), %al
testb $0x1, %al
jne 0x753d8
jmp 0x75480
leaq -0x270(%rbp), %rdi
leaq 0x5a0b3(%rip), %rsi     # 0xcf499
callq 0x10720
movq %rax, -0x6b0(%rbp)
jmp 0x753f4
movq -0x6b0(%rbp), %rdi
leaq 0x55f05(%rip), %rsi     # 0xcb307
callq 0x10720
jmp 0x75409
leaq -0x3f8(%rbp), %rdi
leaq 0x5a082(%rip), %rsi     # 0xcf499
callq 0x10720
movq %rax, -0x6b8(%rbp)
jmp 0x75425
movq -0x6b8(%rbp), %rdi
leaq 0x55ed4(%rip), %rsi     # 0xcb307
callq 0x10720
jmp 0x7543a
jmp 0x75480
leaq -0xc0(%rbp), %rdi
callq 0x1d520
jmp 0x7574b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x7573f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x75733
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x75727
movb $0x0, -0x609(%rbp)
leaq -0x5e8(%rbp), %rdi
leaq -0x280(%rbp), %rsi
callq 0x10710
jmp 0x7549c
leaq 0x56a94(%rip), %rsi     # 0xcbf37
leaq -0x5e8(%rbp), %rdi
callq 0x4dd00
movb %al, -0x6b9(%rbp)
jmp 0x754b7
movb -0x6b9(%rbp), %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0x6ba(%rbp)
jne 0x75511
jmp 0x754cc
leaq -0x608(%rbp), %rdi
leaq -0x408(%rbp), %rsi
callq 0x10710
jmp 0x754e1
movb $0x1, -0x609(%rbp)
leaq 0x56a48(%rip), %rsi     # 0xcbf37
leaq -0x608(%rbp), %rdi
callq 0x4dd00
movb %al, -0x6bb(%rbp)
jmp 0x75503
movb -0x6bb(%rbp), %al
movb %al, -0x6ba(%rbp)
jmp 0x75511
movb -0x6ba(%rbp), %al
andb $0x1, %al
movb %al, -0x5c1(%rbp)
xorl %eax, %eax
movl %eax, %edx
leaq -0x5c0(%rbp), %rdi
leaq -0x5c1(%rbp), %rsi
callq 0x1d4a0
jmp 0x75538
testb $0x1, -0x609(%rbp)
jne 0x75543
jmp 0x7554f
leaq -0x608(%rbp), %rdi
callq 0x10fc8
leaq -0x5e8(%rbp), %rdi
callq 0x10fc8
leaq -0x5c0(%rbp), %rdi
callq 0x1d4e0
movb %al, -0x6bc(%rbp)
jmp 0x7556f
movb -0x6bc(%rbp), %al
testb $0x1, %al
jne 0x7557b
jmp 0x755d5
jmp 0x756cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x755b3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
testb $0x1, -0x609(%rbp)
jne 0x755a5
jmp 0x755b1
leaq -0x608(%rbp), %rdi
callq 0x10fc8
jmp 0x755b3
leaq -0x5e8(%rbp), %rdi
callq 0x10fc8
jmp 0x75727
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x7571b
leaq -0x618(%rbp), %rdi
callq 0x84210
jmp 0x755e3
leaq 0x56a79(%rip), %rdx     # 0xcc063
leaq 0x52e5e(%rip), %rcx     # 0xc844f
leaq 0x52e5d(%rip), %r8      # 0xc8455
leaq -0x640(%rbp), %rdi
leaq -0x5c0(%rbp), %rsi
callq 0x7d210
jmp 0x7560d
leaq -0x640(%rbp), %rdi
callq 0x102c0
movq %rax, %r8
leaq 0x568c4(%rip), %rdx     # 0xcbee7
leaq -0x620(%rbp), %rdi
movl $0x2, %esi
movl $0x3d, %ecx
callq 0x80580
jmp 0x7563b
leaq -0x620(%rbp), %rdi
leaq -0x618(%rbp), %rsi
callq 0x7d370
jmp 0x75650
leaq -0x620(%rbp), %rdi
callq 0x80600
leaq -0x640(%rbp), %rdi
callq 0x10fc8
leaq -0x618(%rbp), %rdi
callq 0x1d500
movl $0x1, -0x64(%rbp)
jmp 0x756d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x756bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x756b1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x620(%rbp), %rdi
callq 0x80600
leaq -0x640(%rbp), %rdi
callq 0x10fc8
leaq -0x618(%rbp), %rdi
callq 0x1d500
jmp 0x7571b
movl $0x0, -0x64(%rbp)
leaq -0x5c0(%rbp), %rdi
callq 0x1d520
movl -0x64(%rbp), %eax
testl %eax, %eax
jne 0x756ee
jmp 0x756e7
movl $0x0, -0x64(%rbp)
leaq -0x590(%rbp), %rdi
callq 0x10570
leaq -0x408(%rbp), %rdi
callq 0x10570
leaq -0x280(%rbp), %rdi
callq 0x10570
addq $0x6c0, %rsp            # imm = 0x6C0
popq %rbp
retq
leaq -0x5c0(%rbp), %rdi
callq 0x1d520
leaq -0x590(%rbp), %rdi
callq 0x10570
leaq -0x408(%rbp), %rdi
callq 0x10570
leaq -0x280(%rbp), %rdi
callq 0x10570
movq -0x28(%rbp), %rdi
callq 0x10e00
nopw %cs:(%rax,%rax)
nop