// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/Test_MemAllocLinear.cpp
// Function: MemAllocLinearTest_Alignmenment_Test::TestBody()
TEST_F(MemAllocLinearTest, Alignmenment)
{
  // Allocate an int, check alignment.
  int* iptr = LinearAllocate<int>(&alloc);
  ASSERT_EQ(sizeof(int), alloc.m_Offset);
  ASSERT_EQ(0, uintptr_t(iptr) & 3);

  // Allocate a character.
  LinearAllocate<char>(&alloc);
  ASSERT_EQ(sizeof(int) + sizeof(char), alloc.m_Offset);

  // Allocate another int, check alignment.
  iptr = LinearAllocate<int>(&alloc);
  ASSERT_EQ(sizeof(int) * 3, alloc.m_Offset);
  ASSERT_EQ(0, uintptr_t(iptr) & 3);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x118(%rbp)
addq $0x18, %rdi
callq 0x60920
movq -0x118(%rbp), %r8
movq %rax, -0x10(%rbp)
movq $0x4, -0x28(%rbp)
addq $0x30, %r8
leaq 0x2de4a(%rip), %rsi     # 0x8dadb
leaq 0x2de27(%rip), %rdx     # 0x8dabf
leaq -0x20(%rbp), %rdi
movq %rdi, -0x110(%rbp)
leaq -0x28(%rbp), %rcx
callq 0x60950
movq -0x110(%rbp), %rdi
callq 0x31090
movb %al, -0x101(%rbp)
jmp 0x5fcc0
movb -0x101(%rbp), %al
testb $0x1, %al
jne 0x5fccc
jmp 0x5fce2
jmp 0x5fd7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5fdfd
leaq -0x40(%rbp), %rdi
callq 0x16d70
jmp 0x5fced
leaq -0x20(%rbp), %rdi
callq 0x310b0
movq %rax, -0x120(%rbp)
jmp 0x5fcff
movq -0x120(%rbp), %r8
leaq 0x2dd91(%rip), %rdx     # 0x8da9e
leaq -0x48(%rbp), %rdi
movl $0x2, %esi
movl $0x25, %ecx
callq 0x13fa0
jmp 0x5fd22
leaq -0x48(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x14060
jmp 0x5fd31
leaq -0x48(%rbp), %rdi
callq 0x14020
leaq -0x40(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x5fd84
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5fd6f
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 0x5fdfd
movl $0x0, -0x4c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x5fd9b
jmp 0x5fd96
jmp 0x60307
movl $0x0, -0x64(%rbp)
movq -0x10(%rbp), %rax
andl $0x3, %eax
movq %rax, -0x70(%rbp)
leaq 0x2c30a(%rip), %rsi     # 0x8c0be
leaq 0x2dd2c(%rip), %rdx     # 0x8dae7
xorl %eax, %eax
movl %eax, %r9d
leaq -0x60(%rbp), %rdi
movq %rdi, -0x130(%rbp)
leaq -0x64(%rbp), %rcx
leaq -0x70(%rbp), %r8
callq 0x50690
movq -0x130(%rbp), %rdi
callq 0x31090
movb %al, -0x121(%rbp)
jmp 0x5fdec
movb -0x121(%rbp), %al
testb $0x1, %al
jne 0x5fdf8
jmp 0x5fe1c
jmp 0x5feb7
leaq -0x20(%rbp), %rdi
callq 0x30d20
jmp 0x6031c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5ff48
leaq -0x78(%rbp), %rdi
callq 0x16d70
jmp 0x5fe27
leaq -0x60(%rbp), %rdi
callq 0x310b0
movq %rax, -0x138(%rbp)
jmp 0x5fe39
movq -0x138(%rbp), %r8
leaq 0x2dc57(%rip), %rdx     # 0x8da9e
leaq -0x80(%rbp), %rdi
movl $0x2, %esi
movl $0x26, %ecx
callq 0x13fa0
jmp 0x5fe5c
leaq -0x80(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x14060
jmp 0x5fe6b
leaq -0x80(%rbp), %rdi
callq 0x14020
leaq -0x78(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x5febe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x5fea9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x14020
leaq -0x78(%rbp), %rdi
callq 0x31070
jmp 0x5ff48
movl $0x0, -0x4c(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x5fed5
jmp 0x5fed0
jmp 0x60307
movq -0x118(%rbp), %rdi
addq $0x18, %rdi
callq 0x609a0
movq -0x118(%rbp), %r8
movq $0x5, -0x98(%rbp)
addq $0x30, %r8
leaq 0x2dbf9(%rip), %rsi     # 0x8dafb
leaq 0x2dbb6(%rip), %rdx     # 0x8dabf
leaq -0x90(%rbp), %rdi
movq %rdi, -0x148(%rbp)
leaq -0x98(%rbp), %rcx
callq 0x60950
movq -0x148(%rbp), %rdi
callq 0x31090
movb %al, -0x139(%rbp)
jmp 0x5ff37
movb -0x139(%rbp), %al
testb $0x1, %al
jne 0x5ff43
jmp 0x5ff67
jmp 0x6001d
leaq -0x60(%rbp), %rdi
callq 0x30d20
jmp 0x6031c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x600b5
leaq -0xa0(%rbp), %rdi
callq 0x16d70
jmp 0x5ff75
leaq -0x90(%rbp), %rdi
callq 0x310b0
movq %rax, -0x150(%rbp)
jmp 0x5ff8a
movq -0x150(%rbp), %r8
leaq 0x2db06(%rip), %rdx     # 0x8da9e
leaq -0xa8(%rbp), %rdi
movl $0x2, %esi
movl $0x2a, %ecx
callq 0x13fa0
jmp 0x5ffb0
leaq -0xa8(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x14060
jmp 0x5ffc5
leaq -0xa8(%rbp), %rdi
callq 0x14020
leaq -0xa0(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x60024
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x6000c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x14020
leaq -0xa0(%rbp), %rdi
callq 0x31070
jmp 0x600b5
movl $0x0, -0x4c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x6003e
jmp 0x60039
jmp 0x60307
movq -0x118(%rbp), %rdi
addq $0x18, %rdi
callq 0x60920
movq -0x118(%rbp), %r8
movq %rax, -0x10(%rbp)
movq $0xc, -0xc0(%rbp)
addq $0x30, %r8
leaq 0x2daa7(%rip), %rsi     # 0x8db16
leaq 0x2da49(%rip), %rdx     # 0x8dabf
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x160(%rbp)
leaq -0xc0(%rbp), %rcx
callq 0x60950
movq -0x160(%rbp), %rdi
callq 0x31090
movb %al, -0x151(%rbp)
jmp 0x600a4
movb -0x151(%rbp), %al
testb $0x1, %al
jne 0x600b0
jmp 0x600d7
jmp 0x6018d
leaq -0x90(%rbp), %rdi
callq 0x30d20
jmp 0x6031c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x6021f
leaq -0xc8(%rbp), %rdi
callq 0x16d70
jmp 0x600e5
leaq -0xb8(%rbp), %rdi
callq 0x310b0
movq %rax, -0x168(%rbp)
jmp 0x600fa
movq -0x168(%rbp), %r8
leaq 0x2d996(%rip), %rdx     # 0x8da9e
leaq -0xd0(%rbp), %rdi
movl $0x2, %esi
movl $0x2e, %ecx
callq 0x13fa0
jmp 0x60120
leaq -0xd0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x14060
jmp 0x60135
leaq -0xd0(%rbp), %rdi
callq 0x14020
leaq -0xc8(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x60194
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x6017c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x14020
leaq -0xc8(%rbp), %rdi
callq 0x31070
jmp 0x6021f
movl $0x0, -0x4c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x30d20
movl -0x4c(%rbp), %eax
testl %eax, %eax
je 0x601ae
jmp 0x601a9
jmp 0x60307
movl $0x0, -0xe4(%rbp)
movq -0x10(%rbp), %rax
andl $0x3, %eax
movq %rax, -0xf0(%rbp)
leaq 0x2bef1(%rip), %rsi     # 0x8c0be
leaq 0x2d913(%rip), %rdx     # 0x8dae7
xorl %eax, %eax
movl %eax, %r9d
leaq -0xe0(%rbp), %rdi
movq %rdi, -0x178(%rbp)
leaq -0xe4(%rbp), %rcx
leaq -0xf0(%rbp), %r8
callq 0x50690
movq -0x178(%rbp), %rdi
callq 0x31090
movb %al, -0x169(%rbp)
jmp 0x6020e
movb -0x169(%rbp), %al
testb $0x1, %al
jne 0x6021a
jmp 0x60241
jmp 0x602f4
leaq -0xb8(%rbp), %rdi
callq 0x30d20
jmp 0x6031c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x60310
leaq -0xf8(%rbp), %rdi
callq 0x16d70
jmp 0x6024f
leaq -0xe0(%rbp), %rdi
callq 0x310b0
movq %rax, -0x180(%rbp)
jmp 0x60264
movq -0x180(%rbp), %r8
leaq 0x2d82c(%rip), %rdx     # 0x8da9e
leaq -0x100(%rbp), %rdi
movl $0x2, %esi
movl $0x2f, %ecx
callq 0x13fa0
jmp 0x6028a
leaq -0x100(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x14060
jmp 0x6029f
leaq -0x100(%rbp), %rdi
callq 0x14020
leaq -0xf8(%rbp), %rdi
callq 0x31070
movl $0x1, -0x4c(%rbp)
jmp 0x602fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
jmp 0x602e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x14020
leaq -0xf8(%rbp), %rdi
callq 0x31070
jmp 0x60310
movl $0x0, -0x4c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x30d20
addq $0x180, %rsp            # imm = 0x180
popq %rbp
retq
leaq -0xe0(%rbp), %rdi
callq 0x30d20
movq -0x30(%rbp), %rdi
callq 0xee80
nopw %cs:(%rax,%rax)