// File: /workspace/github_c_makefile_star2_O2/deplinenoise[P]tundra/unittest/Test_IncludeScanner.cpp
// Function: IncludeScannerTest_MultiIncludes_Test::TestBody()
TEST_F(IncludeScannerTest, MultiIncludes)
{
  char data[] =
    "#include <foo.h>\n"
    "#include \"a.h\"\n"
    "#include <foo/bar/baz.h>\n";

  IncludeData* incs = ScanIncludesCpp(data, &alloc);
  ASSERT_NE(nullptr, data);

  ASSERT_STREQ("foo.h", incs->m_String);
  ASSERT_EQ(5, incs->m_StringLen);
  ASSERT_EQ(true, incs->m_IsSystemInclude);
  ASSERT_EQ(true, incs->m_ShouldFollow);
  ASSERT_NE(nullptr, incs->m_Next);

  incs = incs->m_Next;

  ASSERT_STREQ("a.h", incs->m_String);
  ASSERT_EQ(3, incs->m_StringLen);
  ASSERT_EQ(false, incs->m_IsSystemInclude);
  ASSERT_EQ(true, incs->m_ShouldFollow);
  ASSERT_NE(nullptr, incs->m_Next);

  incs = incs->m_Next;

  ASSERT_STREQ("foo/bar/baz.h", incs->m_String);
  ASSERT_EQ(13, incs->m_StringLen);
  ASSERT_EQ(true, incs->m_IsSystemInclude);
  ASSERT_EQ(true, incs->m_ShouldFollow);
  ASSERT_EQ(nullptr, incs->m_Next);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x68, %rsp
movups 0x1c7fa(%rip), %xmm0    # 0x469ea
leaq 0x20(%rsp), %rax
movups %xmm0, 0x2a(%rax)
movaps 0x1c7e0(%rip), %xmm0    # 0x469e0
movaps %xmm0, 0x20(%rax)
movaps 0x1c7c5(%rip), %xmm0    # 0x469d0
movaps %xmm0, 0x10(%rax)
movaps 0x1c7aa(%rip), %xmm0    # 0x469c0
movaps %xmm0, (%rax)
leaq 0x18(%rdi), %rsi
movq %rax, %rdi
callq 0x342dc
movq %rax, %rbx
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x11789
cmpb $0x0, (%r14)
je 0x2a5c2
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq (%rbx), %r8
leaq 0x1c5d7(%rip), %rsi     # 0x4682a
leaq 0x1c5d8(%rip), %rdx     # 0x46832
leaq 0x1c5e0(%rip), %rcx     # 0x46841
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x13723
cmpb $0x0, (%r14)
je 0x2a5d9
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x5, (%rcx)
leaq 0x8(%rbx), %r8
leaq 0x1e0ea(%rip), %rsi     # 0x48380
leaq 0x1c5aa(%rip), %rdx     # 0x46847
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x287b5
cmpb $0x0, (%r14)
je 0x2a620
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movb $0x1, (%rcx)
leaq 0x10(%rbx), %r8
leaq 0x1a45b(%rip), %rsi     # 0x4472a
leaq 0x1c583(%rip), %rdx     # 0x46859
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x2b0f9
cmpb $0x0, (%r14)
je 0x2a667
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movb $0x1, (%rcx)
leaq 0x11(%rbx), %r8
leaq 0x1a422(%rip), %rsi     # 0x4472a
leaq 0x1c562(%rip), %rdx     # 0x46871
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x2b0f9
cmpb $0x0, (%r14)
je 0x2a6ae
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
andq $0x0, (%rcx)
addq $0x18, %rbx
leaq 0x1c099(%rip), %rsi     # 0x463db
leaq 0x1c53d(%rip), %rdx     # 0x46886
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %rbx, %r8
callq 0x2aafe
cmpb $0x0, (%r14)
je 0x2a6f5
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq (%rbx), %rbx
movq (%rbx), %r8
leaq 0x1c568(%rip), %rsi     # 0x468e2
leaq 0x1c4b1(%rip), %rdx     # 0x46832
leaq 0x1c560(%rip), %rcx     # 0x468e8
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x13723
cmpb $0x0, (%r14)
je 0x2a73c
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0x3, (%rcx)
leaq 0x8(%rbx), %r8
leaq 0x1d18c(%rip), %rsi     # 0x47549
leaq 0x1c483(%rip), %rdx     # 0x46847
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x287b5
cmpb $0x0, (%r14)
je 0x2a783
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movb $0x0, (%rcx)
leaq 0x10(%rbx), %r8
leaq 0x1ae7a(%rip), %rsi     # 0x45270
leaq 0x1c45c(%rip), %rdx     # 0x46859
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x2b0f9
cmpb $0x0, (%r14)
je 0x2a7ca
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movb $0x1, (%rcx)
leaq 0x11(%rbx), %r8
leaq 0x1a2fb(%rip), %rsi     # 0x4472a
leaq 0x1c43b(%rip), %rdx     # 0x46871
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x2b0f9
cmpb $0x0, (%r14)
je 0x2a811
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
andq $0x0, (%rcx)
addq $0x18, %rbx
leaq 0x1bf72(%rip), %rsi     # 0x463db
leaq 0x1c416(%rip), %rdx     # 0x46886
leaq 0x10(%rsp), %r14
movq %r14, %rdi
movq %rbx, %r8
callq 0x2aafe
cmpb $0x0, (%r14)
je 0x2a858
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq (%rbx), %r14
movq (%r14), %r8
leaq 0x1c44b(%rip), %rsi     # 0x468ec
leaq 0x1c38a(%rip), %rdx     # 0x46832
leaq 0x1c44d(%rip), %rcx     # 0x468fc
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x13723
cmpb $0x0, (%rbx)
je 0x2a89f
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movl $0xd, (%rcx)
leaq 0x8(%r14), %r8
leaq 0x1c427(%rip), %rsi     # 0x4690a
leaq 0x1c35d(%rip), %rdx     # 0x46847
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x287b5
cmpb $0x0, (%rbx)
je 0x2a8e6
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movb $0x1, (%rcx)
leaq 0x10(%r14), %r8
leaq 0x1a20f(%rip), %rsi     # 0x4472a
leaq 0x1c337(%rip), %rdx     # 0x46859
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2b0f9
cmpb $0x0, (%rbx)
je 0x2a92d
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rsp, %rcx
movb $0x1, (%rcx)
leaq 0x11(%r14), %r8
leaq 0x1a1d7(%rip), %rsi     # 0x4472a
leaq 0x1c317(%rip), %rdx     # 0x46871
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
callq 0x2b0f9
cmpb $0x0, (%rbx)
je 0x2a971
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq 0x18(%r14), %r8
leaq 0x1be56(%rip), %rsi     # 0x463db
leaq 0x1c2fa(%rip), %rdx     # 0x46886
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
xorl %ecx, %ecx
callq 0x2aad6
cmpb $0x0, (%rbx)
jne 0x2aa44
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2aa07
movq (%rax), %r8
jmp 0x2aa0e
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a5f0
movq (%rax), %r8
jmp 0x2a5f7
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a637
movq (%rax), %r8
jmp 0x2a63e
leaq 0x1f8b0(%rip), %r8      # 0x49ea7
leaq 0x1c1f1(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x5d
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a67e
movq (%rax), %r8
jmp 0x2a685
leaq 0x1f869(%rip), %r8      # 0x49ea7
leaq 0x1c1aa(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x5f
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a6c5
movq (%rax), %r8
jmp 0x2a6cc
leaq 0x1f822(%rip), %r8      # 0x49ea7
leaq 0x1c163(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x60
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a70c
movq (%rax), %r8
jmp 0x2a713
leaq 0x1f7db(%rip), %r8      # 0x49ea7
leaq 0x1c11c(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x61
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a753
movq (%rax), %r8
jmp 0x2a75a
leaq 0x1f794(%rip), %r8      # 0x49ea7
leaq 0x1c0d5(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x62
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a79a
movq (%rax), %r8
jmp 0x2a7a1
leaq 0x1f74d(%rip), %r8      # 0x49ea7
leaq 0x1c08e(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x63
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a7e1
movq (%rax), %r8
jmp 0x2a7e8
leaq 0x1f706(%rip), %r8      # 0x49ea7
leaq 0x1c047(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x67
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a828
movq (%rax), %r8
jmp 0x2a82f
leaq 0x1f6bf(%rip), %r8      # 0x49ea7
leaq 0x1c000(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x68
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a86f
movq (%rax), %r8
jmp 0x2a876
leaq 0x1f678(%rip), %r8      # 0x49ea7
leaq 0x1bfb9(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x69
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a8b6
movq (%rax), %r8
jmp 0x2a8bd
leaq 0x1f631(%rip), %r8      # 0x49ea7
leaq 0x1bf72(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x6a
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a8fd
movq (%rax), %r8
jmp 0x2a904
leaq 0x1f5ea(%rip), %r8      # 0x49ea7
leaq 0x1bf2b(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x6b
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a944
movq (%rax), %r8
jmp 0x2a94b
leaq 0x1f5a3(%rip), %r8      # 0x49ea7
leaq 0x1bee4(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x6f
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a988
movq (%rax), %r8
jmp 0x2a98f
leaq 0x1f55c(%rip), %r8      # 0x49ea7
leaq 0x1be9d(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x70
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
movq %rsp, %rdi
callq 0x11c8e
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x2a9b5
movq (%rax), %r8
jmp 0x2a9bc
leaq 0x1f518(%rip), %r8      # 0x49ea7
leaq 0x1be59(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x71
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
jmp 0x2a9e0
leaq 0x1f4eb(%rip), %r8      # 0x49ea7
leaq 0x1be2c(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x72
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
leaq 0x18(%rsp), %rbx
leaq 0x8(%rsp), %rdi
callq 0x10558
movq %rsp, %rdi
callq 0x1f8e0
movq %rbx, %rdi
callq 0x2295e
addq $0x68, %rsp
popq %rbx
popq %r14
retq
leaq 0x1f499(%rip), %r8      # 0x49ea7
leaq 0x1bdda(%rip), %rdx     # 0x467ef
leaq 0x8(%rsp), %rdi
pushq $0x2
popq %rsi
pushq $0x73
popq %rcx
callq 0x104f8
leaq 0x8(%rsp), %rdi
movq %rsp, %rsi
callq 0x10576
leaq 0x8(%rsp), %rdi
callq 0x10558
movq %rsp, %rdi
callq 0x1f8e0
leaq 0x18(%rsp), %rdi
jmp 0x2a9fa
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
jmp 0x2aaa5
jmp 0x2aab4
jmp 0x2aac1
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x10558
jmp 0x2aab7
movq %rax, %rbx
movq %rsp, %rdi
callq 0x1f8e0
jmp 0x2aac4
movq %rax, %rbx
leaq 0x18(%rsp), %rdi
callq 0x2295e
movq %rbx, %rdi
callq 0xdbf0