// File: /workspace/github_c_makefile_star2_O1/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 0x42144
movq %rax, 0x20(%rsp)
leaq 0x1e30a(%rip), %rsi     # 0x55d2f
leaq 0x1e306(%rip), %rdx     # 0x55d32
leaq 0x21420(%rip), %rbx     # 0x58e53
leaq 0x10(%rsp), %r15
movq %r15, %rdi
movq %rbx, %rcx
movq %r14, %r8
callq 0x150d6
cmpb $0x0, (%r15)
je 0x37bdc
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movq $0x0, (%rcx)
leaq 0x1d96e(%rip), %rsi     # 0x553db
leaq 0x1d36d(%rip), %rdx     # 0x54de1
leaq 0x10(%rsp), %rbx
leaq 0x20(%rsp), %r8
movq %rbx, %rdi
callq 0x3a063
cmpb $0x0, (%rbx)
je 0x37c63
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x3, (%rcx)
movq 0x20(%rsp), %r8
leaq 0x1e3cd(%rip), %rsi     # 0x55e7d
leaq 0x1e397(%rip), %rdx     # 0x55e4e
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3aaac
cmpb $0x0, (%rbx)
je 0x37c7a
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
movq %rsp, %rcx
movl $0x1, (%rcx)
movq 0x20(%rsp), %rax
xorl %r8d, %r8d
cmpl $0x3, (%rax)
cmoveq %rax, %r8
addq $0x8, %r8
leaq 0x1c64b(%rip), %rsi     # 0x54147
leaq 0x1e38c(%rip), %rdx     # 0x55e8f
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3352d
cmpb $0x0, (%rbx)
je 0x37d0e
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
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 0x1e367(%rip), %rsi     # 0x55eb1
leaq 0x1e373(%rip), %rdx     # 0x55ec4
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x3aaac
cmpb $0x0, (%rbx)
je 0x37da2
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
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 0x1e1b3(%rip), %rsi     # 0x55d4d
leaq 0x1e336(%rip), %rdx     # 0x55ed7
leaq 0x1f5cf(%rip), %rcx     # 0x57177
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x150d6
cmpb $0x0, (%rbx)
jne 0x37f07
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37ea2
movq (%rax), %r8
jmp 0x37ea9
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37bf1
movq (%rax), %rbx
leaq 0x1e120(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x51, %ecx
movq %rbx, %r8
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x37c52
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x37c4a
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37c4a
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x37f13
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37c98
movq (%rax), %r8
jmp 0x37c9f
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37d2c
movq (%rax), %r8
jmp 0x37d33
leaq 0x211b4(%rip), %r8      # 0x58e53
leaq 0x1e072(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x52, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x37cfd
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x37cf5
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37cf5
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x37f13
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37db9
movq (%rax), %r8
jmp 0x37dc0
leaq 0x21120(%rip), %r8      # 0x58e53
leaq 0x1dfde(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x54, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x37d91
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x37d89
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37d89
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x37f13
movq %rsp, %rdi
callq 0x12eee
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x37e2f
movq (%rax), %r8
jmp 0x37e36
leaq 0x21093(%rip), %r8      # 0x58e53
leaq 0x1df51(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x55, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x37e1e
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x37e16
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37e16
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x37f13
leaq 0x2101d(%rip), %r8      # 0x58e53
leaq 0x1dedb(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x56, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x37e94
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x37e8c
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37e8c
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
jmp 0x37f13
leaq 0x20faa(%rip), %r8      # 0x58e53
leaq 0x1de68(%rip), %rdx     # 0x55d18
leaq 0x8(%rsp), %rdi
movl $0x2, %esi
movl $0x57, %ecx
callq 0x10bb8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10c56
leaq 0x8(%rsp), %rdi
callq 0x10c24
cmpq $0x0, (%rsp)
je 0x37f07
movl $0x1, %edi
callq 0x10bb4
testb %al, %al
je 0x37eff
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x37eff
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, (%rsp)
leaq 0x18(%rsp), %rdi
xorl %esi, %esi
callq 0x2c81c
addq $0x30, %rsp
popq %rbx
popq %r14
popq %r15
retq
jmp 0x37f8c
jmp 0x37f5b
jmp 0x37f6a
jmp 0x37f77
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f5b
jmp 0x37f6a
jmp 0x37f77
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f5b
jmp 0x37f6a
jmp 0x37f77
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f5b
jmp 0x37f6a
jmp 0x37f77
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f5b
jmp 0x37f6a
jmp 0x37f77
jmp 0x37f8c
jmp 0x37f8c
jmp 0x37f8c
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10c24
jmp 0x37f6d
movq %rax, %rbx
movq %rsp, %rdi
callq 0x31faa
jmp 0x37f7a
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x31fbc
movq %rbx, %rdi
callq 0xcbb0
movq %rax, %rdi
callq 0x28baf