// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x1b0, %rsp            # imm = 0x1B0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rcx
movabsq $0x5d226f6f66225b, %rax # imm = 0x5D226F6F66225B
movq %rax, -0x10(%rbp)
movq %rcx, %rsi
addq $0x18, %rsi
movq %rcx, %rdx
addq $0x50, %rdx
addq $0x88, %rcx
movq %rcx, -0x128(%rbp)
leaq -0x10(%rbp), %rdi
callq 0x6ccb0
movq -0x128(%rbp), %r8
movq %rax, -0x18(%rbp)
leaq 0x331b7(%rip), %rsi     # 0x8d2df
leaq 0x331b3(%rip), %rdx     # 0x8d2e2
leaq 0x3669a(%rip), %rcx     # 0x907d0
leaq -0x28(%rbp), %rdi
movq %rdi, -0x120(%rbp)
callq 0x19e10
movq -0x120(%rbp), %rdi
callq 0x31090
movb %al, -0x111(%rbp)
jmp 0x5a15a
movb -0x111(%rbp), %al
testb $0x1, %al
jne 0x5a166
jmp 0x5a17c
jmp 0x5a214
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a285
leaq -0x40(%rbp), %rdi
callq 0x16d70
jmp 0x5a187
leaq -0x28(%rbp), %rdi
callq 0x310b0
movq %rax, -0x130(%rbp)
jmp 0x5a199
movq -0x130(%rbp), %r8
leaq 0x33121(%rip), %rdx     # 0x8d2c8
leaq -0x48(%rbp), %rdi
movl $0x2, %esi
movl $0x51, %ecx
callq 0x13fa0
jmp 0x5a1bc
leaq -0x48(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x14060
jmp 0x5a1cb
leaq -0x48(%rbp), %rdi
callq 0x14020
leaq -0x40(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x5a21b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a209
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x48(%rbp), %rdi
callq 0x14020
leaq -0x40(%rbp), %rdi
callq 0x31070
jmp 0x5a285
movl $0x0, -0x4c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x5a232
jmp 0x5a22d
jmp 0x5a8b9
movq $0x0, -0x68(%rbp)
leaq 0x3273a(%rip), %rsi     # 0x8c97b
leaq 0x32184(%rip), %rdx     # 0x8c3cc
leaq -0x60(%rbp), %rdi
movq %rdi, -0x140(%rbp)
leaq -0x68(%rbp), %rcx
leaq -0x18(%rbp), %r8
callq 0x5d7f0
movq -0x140(%rbp), %rdi
callq 0x31090
movb %al, -0x131(%rbp)
jmp 0x5a274
movb -0x131(%rbp), %al
testb $0x1, %al
jne 0x5a280
jmp 0x5a2a4
jmp 0x5a33c
leaq -0x28(%rbp), %rdi
callq 0x30d20
jmp 0x5a8ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a3b5
leaq -0x70(%rbp), %rdi
callq 0x16d70
jmp 0x5a2af
leaq -0x60(%rbp), %rdi
callq 0x310b0
movq %rax, -0x148(%rbp)
jmp 0x5a2c1
movq -0x148(%rbp), %r8
leaq 0x32ff9(%rip), %rdx     # 0x8d2c8
leaq -0x78(%rbp), %rdi
movl $0x2, %esi
movl $0x52, %ecx
callq 0x13fa0
jmp 0x5a2e4
leaq -0x78(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x14060
jmp 0x5a2f3
leaq -0x78(%rbp), %rdi
callq 0x14020
leaq -0x70(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x5a343
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a331
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x14020
leaq -0x70(%rbp), %rdi
callq 0x31070
jmp 0x5a3b5
movl $0x0, -0x4c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x5a35a
jmp 0x5a355
jmp 0x5a8b9
movl $0x3, -0x8c(%rbp)
movq -0x18(%rbp), %r8
leaq 0x330be(%rip), %rsi     # 0x8d42d
leaq 0x33088(%rip), %rdx     # 0x8d3fe
leaq -0x88(%rbp), %rdi
movq %rdi, -0x158(%rbp)
leaq -0x8c(%rbp), %rcx
callq 0x5d910
movq -0x158(%rbp), %rdi
callq 0x31090
movb %al, -0x149(%rbp)
jmp 0x5a3a4
movb -0x149(%rbp), %al
testb $0x1, %al
jne 0x5a3b0
jmp 0x5a3d4
jmp 0x5a48a
leaq -0x60(%rbp), %rdi
callq 0x30d20
jmp 0x5a8ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a512
leaq -0x98(%rbp), %rdi
callq 0x16d70
jmp 0x5a3e2
leaq -0x88(%rbp), %rdi
callq 0x310b0
movq %rax, -0x160(%rbp)
jmp 0x5a3f7
movq -0x160(%rbp), %r8
leaq 0x32ec3(%rip), %rdx     # 0x8d2c8
leaq -0xa0(%rbp), %rdi
movl $0x2, %esi
movl $0x54, %ecx
callq 0x13fa0
jmp 0x5a41d
leaq -0xa0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x14060
jmp 0x5a432
leaq -0xa0(%rbp), %rdi
callq 0x14020
leaq -0x98(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x5a491
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0x14020
leaq -0x98(%rbp), %rdi
callq 0x31070
jmp 0x5a512
movl $0x0, -0x4c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x5a4ab
jmp 0x5a4a6
jmp 0x5a8b9
movl $0x1, -0xb4(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5da60
movq %rax, %r8
addq $0x8, %r8
leaq 0x31229(%rip), %rsi     # 0x8b6f5
leaq 0x32f6c(%rip), %rdx     # 0x8d43f
leaq -0xb0(%rbp), %rdi
movq %rdi, -0x170(%rbp)
leaq -0xb4(%rbp), %rcx
callq 0x50860
movq -0x170(%rbp), %rdi
callq 0x31090
movb %al, -0x161(%rbp)
jmp 0x5a501
movb -0x161(%rbp), %al
testb $0x1, %al
jne 0x5a50d
jmp 0x5a534
jmp 0x5a5ea
leaq -0x88(%rbp), %rdi
callq 0x30d20
jmp 0x5a8ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a672
leaq -0xc0(%rbp), %rdi
callq 0x16d70
jmp 0x5a542
leaq -0xb0(%rbp), %rdi
callq 0x310b0
movq %rax, -0x178(%rbp)
jmp 0x5a557
movq -0x178(%rbp), %r8
leaq 0x32d63(%rip), %rdx     # 0x8d2c8
leaq -0xc8(%rbp), %rdi
movl $0x2, %esi
movl $0x55, %ecx
callq 0x13fa0
jmp 0x5a57d
leaq -0xc8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x14060
jmp 0x5a592
leaq -0xc8(%rbp), %rdi
callq 0x14020
leaq -0xc0(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x5a5f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a5d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x14020
leaq -0xc0(%rbp), %rdi
callq 0x31070
jmp 0x5a672
movl $0x0, -0x4c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x5a60b
jmp 0x5a606
jmp 0x5a8b9
movl $0x4, -0xdc(%rbp)
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5dae0
movq %rax, %r8
leaq 0x32e3d(%rip), %rsi     # 0x8d469
leaq 0x32e49(%rip), %rdx     # 0x8d47c
leaq -0xd8(%rbp), %rdi
movq %rdi, -0x188(%rbp)
leaq -0xdc(%rbp), %rcx
callq 0x5d910
movq -0x188(%rbp), %rdi
callq 0x31090
movb %al, -0x179(%rbp)
jmp 0x5a661
movb -0x179(%rbp), %al
testb $0x1, %al
jne 0x5a66d
jmp 0x5a694
jmp 0x5a74a
leaq -0xb0(%rbp), %rdi
callq 0x30d20
jmp 0x5a8ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a7d1
leaq -0xe8(%rbp), %rdi
callq 0x16d70
jmp 0x5a6a2
leaq -0xd8(%rbp), %rdi
callq 0x310b0
movq %rax, -0x190(%rbp)
jmp 0x5a6b7
movq -0x190(%rbp), %r8
leaq 0x32c03(%rip), %rdx     # 0x8d2c8
leaq -0xf0(%rbp), %rdi
movl $0x2, %esi
movl $0x56, %ecx
callq 0x13fa0
jmp 0x5a6dd
leaq -0xf0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x14060
jmp 0x5a6f2
leaq -0xf0(%rbp), %rdi
callq 0x14020
leaq -0xe8(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x5a751
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a739
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x14020
leaq -0xe8(%rbp), %rdi
callq 0x31070
jmp 0x5a7d1
movl $0x0, -0x4c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x5a76b
jmp 0x5a766
jmp 0x5a8b9
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x5dae0
movq %rax, %rdi
callq 0x5db20
movq 0x8(%rax), %r8
leaq 0x32b72(%rip), %rsi     # 0x8d2fd
leaq 0x32cfd(%rip), %rdx     # 0x8d48f
leaq 0x33f9e(%rip), %rcx     # 0x8e737
leaq -0x100(%rbp), %rdi
movq %rdi, -0x1a0(%rbp)
callq 0x19e10
movq -0x1a0(%rbp), %rdi
callq 0x31090
movb %al, -0x191(%rbp)
jmp 0x5a7c0
movb -0x191(%rbp), %al
testb $0x1, %al
jne 0x5a7cc
jmp 0x5a7f3
jmp 0x5a8a6
leaq -0xd8(%rbp), %rdi
callq 0x30d20
jmp 0x5a8ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a8c2
leaq -0x108(%rbp), %rdi
callq 0x16d70
jmp 0x5a801
leaq -0x100(%rbp), %rdi
callq 0x310b0
movq %rax, -0x1a8(%rbp)
jmp 0x5a816
movq -0x1a8(%rbp), %r8
leaq 0x32aa4(%rip), %rdx     # 0x8d2c8
leaq -0x110(%rbp), %rdi
movl $0x2, %esi
movl $0x57, %ecx
callq 0x13fa0
jmp 0x5a83c
leaq -0x110(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x14060
jmp 0x5a851
leaq -0x110(%rbp), %rdi
callq 0x14020
leaq -0x108(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x5a8ad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5a898
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x14020
leaq -0x108(%rbp), %rdi
callq 0x31070
jmp 0x5a8c2
movl $0x0, -0x4c(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x30d20
addq $0x1b0, %rsp            # imm = 0x1B0
popq %rbp
retq
leaq -0x100(%rbp), %rdi
callq 0x30d20
movq -0x30(%rbp), %rdi
callq 0xee80
nopw (%rax,%rax)