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

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

  ASSERT_EQ(JsonValue::kArray, v->m_Type);
  ASSERT_EQ(1, v->AsArray()->m_Count);
  ASSERT_EQ(JsonValue::kString, v->Elem(0)->m_Type);
  ASSERT_STREQ("foo", v->Elem(0)->AsString()->m_String);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x30, %rsp
movabsq $0x5d226f6f66225b, %rcx # imm = 0x5D226F6F66225B
leaq 0x28(%rsp), %rax
movq %rcx, (%rax)
leaq 0x18(%rdi), %rsi
leaq 0x50(%rdi), %rdx
leaq 0x88(%rdi), %r14
movq %rax, %rdi
movq %r14, %rcx
callq 0x41494
movq %rax, 0x20(%rsp)
leaq 0x1db98(%rip), %rsi     # 0x54d5f
leaq 0x1db94(%rip), %rdx     # 0x54d62
leaq 0x20cf2(%rip), %rbx     # 0x57ec7
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x14ffa
cmpb $0x0, (%r15)
je 0x3737e
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movq $0x0, (%rcx)
leaq 0x1d1fc(%rip), %rsi     # 0x5440b
leaq 0x1cbfb(%rip), %rdx     # 0x53e11
leaq 0x10(%rsp), %rbx
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
callq 0x396c7
cmpb $0x0, (%rbx)
je 0x373fd
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x3, (%rcx)
movq 0x20(%rsp), %r8
leaq 0x1dc5b(%rip), %rsi     # 0x54ead
leaq 0x1dc25(%rip), %rdx     # 0x54e7e
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x37414
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
xorl %r8d, %r8d
cmpl $0x3, (%rax)
cmoveq %rax, %r8
addq $0x8, %r8
leaq 0x1bed9(%rip), %rsi     # 0x53177
leaq 0x1dc1a(%rip), %rdx     # 0x54ebf
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x32e9d
cmpb $0x0, (%rbx)
je 0x374a0
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq %rsp, %rcx
movl $0x4, (%rcx)
movq 0x20(%rsp), %rax
xorl %edx, %edx
cmpl $0x3, (%rax)
cmoveq %rax, %rdx
movq 0x10(%rdx), %rax
movq (%rax), %r8
leaq 0x1dbf5(%rip), %rsi     # 0x54ee1
leaq 0x1dc01(%rip), %rdx     # 0x54ef4
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3a110
cmpb $0x0, (%rbx)
je 0x3752c
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
movq 0x20(%rsp), %rax
xorl %ecx, %ecx
cmpl $0x3, (%rax)
cmovneq %rcx, %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
cmpl $0x4, (%rax)
cmoveq %rax, %rcx
movq 0x8(%rcx), %r8
leaq 0x1da41(%rip), %rsi     # 0x54d7d
leaq 0x1dbc4(%rip), %rdx     # 0x54f07
leaq 0x1ee5d(%rip), %rcx     # 0x561a7
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x14ffa
cmpb $0x0, (%rbx)
jne 0x37679
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x3761c
movq (%rax), %r8
jmp 0x37623
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37393
movq (%rax), %rbx
leaq 0x1d9ae(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x51, %ecx
movq %rbx, %r8
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x373ec
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x373ec
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x373ec
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37685
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37432
movq (%rax), %r8
jmp 0x37439
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x374be
movq (%rax), %r8
jmp 0x374c5
leaq 0x20a8e(%rip), %r8      # 0x57ec7
leaq 0x1d908(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x52, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x3748f
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x3748f
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3748f
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37685
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37543
movq (%rax), %r8
jmp 0x3754a
leaq 0x20a02(%rip), %r8      # 0x57ec7
leaq 0x1d87c(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x54, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x3751b
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x3751b
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3751b
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37685
movq %rsp, %rdi
callq 0x12e46
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x375b1
movq (%rax), %r8
jmp 0x375b8
leaq 0x2097d(%rip), %r8      # 0x57ec7
leaq 0x1d7f7(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x55, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x375a0
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x375a0
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x375a0
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37685
leaq 0x2090f(%rip), %r8      # 0x57ec7
leaq 0x1d789(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x56, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x3760e
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x3760e
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x3760e
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
jmp 0x37685
leaq 0x208a4(%rip), %r8      # 0x57ec7
leaq 0x1d71e(%rip), %rdx     # 0x54d48
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x57, %ecx
callq 0x10b64
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c00
leaq 0x8(%rsp), %rdi
callq 0x10bd0
cmpq $0x0, (%rsp)
je 0x37679
movl $0x1, %edi
callq 0x10b61
testb %al, %al
je 0x37679
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37679
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c37a
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x376fe
jmp 0x376cd
jmp 0x376dc
jmp 0x376e9
jmp 0x376fe
jmp 0x376fe
jmp 0x376fe
jmp 0x376cd
jmp 0x376dc
jmp 0x376e9
jmp 0x376fe
jmp 0x376fe
jmp 0x376fe
jmp 0x376cd
jmp 0x376dc
jmp 0x376e9
jmp 0x376fe
jmp 0x376fe
jmp 0x376fe
jmp 0x376cd
jmp 0x376dc
jmp 0x376e9
jmp 0x376fe
jmp 0x376fe
jmp 0x376fe
jmp 0x376cd
jmp 0x376dc
jmp 0x376e9
jmp 0x376fe
jmp 0x376fe
jmp 0x376fe
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10bd0
jmp 0x376df
movq %rax, %rbx
movq %rsp, %rdi
callq 0x31a70
jmp 0x376ec
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x31a82
movq %rbx, %rdi
callq 0xcbb0
movq %rax, %rdi
callq 0x287ef