// File: /workspace/github_c_makefile_star2_O3/deplinenoise[P]tundra/unittest/Test_Json.cpp
// Function: JsonTest_Simple_Test::TestBody()
TEST_F(JsonTest, Simple)
{
  char input[] = "  { \"foo\" : 8, \"bar\" : true }  ";
  const JsonValue* v = JsonParse(input, &alloc, &scratch, error_msg);

  ASSERT_STREQ("", error_msg);
  ASSERT_NE(nullptr, v);

  const JsonObjectValue* obj = v->AsObject();
  ASSERT_NE(nullptr, obj);
  ASSERT_EQ(2, obj->m_Count);
  ASSERT_STREQ("foo", obj->m_Names[0]);
  ASSERT_STREQ("bar", obj->m_Names[1]);
  ASSERT_EQ(JsonValue::kNumber, obj->m_Values[0]->m_Type);
  ASSERT_EQ(8, int(obj->m_Values[0]->AsNumber()->m_Number));
  ASSERT_EQ(JsonValue::kBoolean, obj->m_Values[1]->m_Type);
  ASSERT_EQ(1, int(obj->m_Values[1]->AsBoolean()->m_Boolean));
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x50, %rsp
movaps 0x1f108(%rip), %xmm0    # 0x551f0
leaq 0x30(%rsp), %rax
movaps %xmm0, 0x10(%rax)
movaps 0x1f0e8(%rip), %xmm0    # 0x551e0
movaps %xmm0, (%rax)
leaq 0x18(%rdi), %rsi
leaq 0x50(%rdi), %rdx
leaq 0x88(%rdi), %r14
movq %rax, %rdi
movq %r14, %rcx
callq 0x41494
movq %rax, 0x28(%rsp)
leaq 0x1ec3e(%rip), %rsi     # 0x54d5f
leaq 0x1ec3a(%rip), %rdx     # 0x54d62
leaq 0x21d98(%rip), %rbx     # 0x57ec7
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x14ffa
cmpb $0x0, (%r15)
je 0x36405
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
leaq 0x20(%rsp), %rcx
movq $0x0, (%rcx)
leaq 0x1e2a0(%rip), %rsi     # 0x5440b
leaq 0x1dc9f(%rip), %rdx     # 0x53e11
leaq 0x10(%rsp), %rbx
leaq 0x28(%rsp), %r8
movq %rbx, %rdi
callq 0x396c7
cmpb $0x0, (%rbx)
je 0x36484
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq 0x28(%rsp), %rax
xorl %ecx, %ecx
cmpl $0x2, (%rax)
cmoveq %rax, %rcx
leaq 0x20(%rsp), %r8
movq %rcx, (%r8)
movq %rsp, %rcx
movq $0x0, (%rcx)
leaq 0x1e24b(%rip), %rsi     # 0x5440b
leaq 0x1eba5(%rip), %rdx     # 0x54d6c
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x396ef
cmpb $0x0, (%rbx)
je 0x3649d
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x2, (%rcx)
movq 0x20(%rsp), %r8
addq $0x8, %r8
leaq 0x2096d(%rip), %rsi     # 0x56b6f
leaq 0x1eb67(%rip), %rdx     # 0x54d70
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x32e9d
cmpb $0x0, (%rbx)
je 0x36527
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq (%rax), %r8
leaq 0x1eb3f(%rip), %rsi     # 0x54d7d
leaq 0x1eb3e(%rip), %rdx     # 0x54d83
leaq 0x1ff5b(%rip), %rcx     # 0x561a7
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x14ffa
cmpb $0x0, (%rbx)
je 0x365b3
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq 0x20(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1eb11(%rip), %rsi     # 0x54d93
leaq 0x1eb10(%rip), %rdx     # 0x54d99
leaq 0x1f699(%rip), %rcx     # 0x55929
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x14ffa
cmpb $0x0, (%rbx)
je 0x3663f
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x5, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %r8
leaq 0x1eadb(%rip), %rsi     # 0x54da9
leaq 0x1eae7(%rip), %rdx     # 0x54dbc
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x366cb
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x8, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq (%rax), %rax
xorl %edx, %edx
cmpl $0x5, (%rax)
cmoveq %rax, %rdx
cvttsd2si 0x8(%rdx), %eax
leaq 0x8(%rsp), %r8
movl %eax, (%r8)
leaq 0x1f47a(%rip), %rsi     # 0x557a3
leaq 0x1eaa5(%rip), %rdx     # 0x54dd5
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x31b38
cmpb $0x0, (%rbx)
je 0x36757
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %r8
leaq 0x1ea92(%rip), %rsi     # 0x54e01
leaq 0x1ea9f(%rip), %rdx     # 0x54e15
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x367e3
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
xorl %edx, %edx
cmpl $0x1, (%rax)
cmoveq %rax, %rdx
movzbl 0x4(%rdx), %eax
leaq 0x8(%rsp), %r8
movl %eax, (%r8)
leaq 0x1cdad(%rip), %rsi     # 0x53177
leaq 0x1ea5d(%rip), %rdx     # 0x54e2e
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x31b38
cmpb $0x0, (%rbx)
jne 0x36930
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x368d3
movq (%rax), %r8
jmp 0x368da
leaq 0x20(%rsp), %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x3641c
movq (%rax), %rbx
leaq 0x1e925(%rip), %rdx     # 0x54d48
movq %rsp, %rdi
movl $0x2, %esi
movl $0x26, %ecx
movq %rbx, %r8
callq 0x10b64
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10c00
movq %rsp, %rdi
callq 0x10bd0
cmpq $0x0, 0x20(%rsp)
je 0x36473
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x36473
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36473
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
leaq 0x20(%rsp), %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x364bb
movq (%rax), %r8
jmp 0x364c2
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36545
movq (%rax), %r8
jmp 0x3654c
leaq 0x21a05(%rip), %r8      # 0x57ec7
leaq 0x1e87f(%rip), %rdx     # 0x54d48
movq %rsp, %rdi
movl $0x2, %esi
movl $0x27, %ecx
callq 0x10b64
movq %rsp, %rdi
leaq 0x20(%rsp), %rsi
callq 0x10c00
movq %rsp, %rdi
callq 0x10bd0
cmpq $0x0, 0x20(%rsp)
je 0x36516
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x36516
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x36516
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x365d1
movq (%rax), %r8
jmp 0x365d8
leaq 0x2197b(%rip), %r8      # 0x57ec7
leaq 0x1e7f5(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2a, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x365a2
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x365a2
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x365a2
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x3665d
movq (%rax), %r8
jmp 0x36664
leaq 0x218ef(%rip), %r8      # 0x57ec7
leaq 0x1e769(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2b, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x3662e
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x3662e
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3662e
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x366e9
movq (%rax), %r8
jmp 0x366f0
leaq 0x21863(%rip), %r8      # 0x57ec7
leaq 0x1e6dd(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2c, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x366ba
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x366ba
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x366ba
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36775
movq (%rax), %r8
jmp 0x3677c
leaq 0x217d7(%rip), %r8      # 0x57ec7
leaq 0x1e651(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2d, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x36746
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x36746
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36746
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x367fa
movq (%rax), %r8
jmp 0x36801
leaq 0x2174b(%rip), %r8      # 0x57ec7
leaq 0x1e5c5(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2e, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x367d2
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x367d2
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x367d2
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x36868
movq (%rax), %r8
jmp 0x3686f
leaq 0x216c6(%rip), %r8      # 0x57ec7
leaq 0x1e540(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x2f, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x36857
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x36857
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36857
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
leaq 0x21658(%rip), %r8      # 0x57ec7
leaq 0x1e4d2(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x30, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x368c5
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x368c5
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x368c5
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x3693c
leaq 0x215ed(%rip), %r8      # 0x57ec7
leaq 0x1e467(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x31, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x36930
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x36930
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x36930
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
addq $0x50, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x36a2e
jmp 0x369d2
jmp 0x369e1
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
jmp 0x369d2
jmp 0x369e1
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
jmp 0x369d2
jmp 0x369e1
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
jmp 0x369d2
jmp 0x369e1
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
jmp 0x369d2
jmp 0x369e1
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
jmp 0x369d2
jmp 0x369e1
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
jmp 0x369d2
jmp 0x369e1
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10bd0
jmp 0x369e4
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x36a12
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
jmp 0x369fd
jmp 0x36a0a
jmp 0x36a19
jmp 0x36a2e
jmp 0x36a2e
jmp 0x36a2e
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10bd0
jmp 0x36a0d
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0x31a70
jmp 0x36a1c
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x31a82
movq %rbx, %rdi
callq 0xcbb0
movq %rax, %rdi
callq 0x287ef