// File: dsharlet[P]array/test/array_lifetime.cpp
// Function: void nda::test_default_init_lifetime<std::allocator<nda::lifetime_counter>>()
void test_default_init_lifetime() {
  lifetime_counter::reset();
  { lifetime_array<Alloc> default_init(lifetime_shape); }
  ASSERT_EQ(lifetime_counter::default_constructs, lifetime_shape.size());
  ASSERT_EQ(lifetime_counter::destructs, lifetime_shape.size());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4b0, %rsp            # imm = 0x4B0
callq 0x7f630
leaq 0x23a131(%rip), %rsi    # 0x292258
movq %rsi, -0x400(%rbp)
leaq -0x50(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0x7f7e0
movq -0x408(%rbp), %rdi
callq 0x7f870
movq -0x400(%rbp), %rdi
leaq 0x23a1d8(%rip), %rax    # 0x292330
movq (%rax), %rax
movq %rax, -0x3f8(%rbp)
callq 0x1a900
movq %rax, %rcx
movq -0x3f8(%rbp), %rax
subq %rcx, %rax
sete %al
movb %al, -0x3e9(%rbp)
leaq -0x201(%rbp), %rdi
movq %rdi, -0x3e8(%rbp)
callq 0x33b0
movq -0x3e8(%rbp), %rdx
leaq 0x1896a8(%rip), %rsi    # 0x1e1846
leaq -0x200(%rbp), %rdi
callq 0x10a90
jmp 0x581ac
movb -0x3e9(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x1e0(%rbp), %rdi
leaq -0x200(%rbp), %rdx
callq 0x10f80
jmp 0x581cd
leaq 0x184611(%rip), %rsi    # 0x1dc7e5
leaq -0x1e0(%rbp), %rdi
callq 0x34320
movq %rax, -0x410(%rbp)
jmp 0x581e9
movq -0x410(%rbp), %rdi
leaq 0x18968d(%rip), %rsi    # 0x1e1884
callq 0x7f8b0
movq %rax, -0x418(%rbp)
jmp 0x58205
movq -0x418(%rbp), %rdi
leaq 0x188599(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x420(%rbp)
jmp 0x58221
movq -0x420(%rbp), %rdi
leaq 0x23a101(%rip), %rsi    # 0x292330
callq 0x355c0
movq %rax, -0x428(%rbp)
jmp 0x5823d
movq -0x428(%rbp), %rdi
leaq 0x18459a(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x430(%rbp)
jmp 0x58259
movq -0x430(%rbp), %rdi
leaq 0x18d43d(%rip), %rsi    # 0x1e56a4
callq 0x34ba0
movq %rax, -0x438(%rbp)
jmp 0x58275
movq -0x438(%rbp), %rdi
leaq 0x188529(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x440(%rbp)
jmp 0x58291
leaq 0x239fc0(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, -0x448(%rbp)
jmp 0x582a6
movq -0x440(%rbp), %rdi
movq -0x448(%rbp), %rax
movq %rax, -0x220(%rbp)
leaq -0x220(%rbp), %rsi
callq 0x355c0
movq %rax, -0x450(%rbp)
jmp 0x582d0
movq -0x450(%rbp), %rdi
leaq 0x19e19d(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x582e5
leaq -0x1e0(%rbp), %rdi
callq 0x10ff0
jmp 0x582f3
leaq -0x200(%rbp), %rdi
callq 0x3100
leaq -0x201(%rbp), %rdi
callq 0x3290
leaq 0x23a046(%rip), %rax    # 0x292358
movq (%rax), %rax
movq %rax, -0x468(%rbp)
leaq 0x239f35(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, %rcx
movq -0x468(%rbp), %rax
subq %rcx, %rax
sete %al
movb %al, -0x459(%rbp)
leaq -0x3d1(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x33b0
movq -0x458(%rbp), %rdx
leaq 0x18954a(%rip), %rsi    # 0x1e18a9
leaq -0x3d0(%rbp), %rdi
callq 0x10a90
jmp 0x5836d
movb -0x459(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x3b0(%rbp), %rdi
leaq -0x3d0(%rbp), %rdx
callq 0x10f80
jmp 0x5838e
leaq 0x184450(%rip), %rsi    # 0x1dc7e5
leaq -0x3b0(%rbp), %rdi
callq 0x34320
movq %rax, -0x470(%rbp)
jmp 0x583aa
movq -0x470(%rbp), %rdi
leaq 0x189526(%rip), %rsi    # 0x1e18de
callq 0x7f8f0
movq %rax, -0x478(%rbp)
jmp 0x583c6
movq -0x478(%rbp), %rdi
leaq 0x1883d8(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x480(%rbp)
jmp 0x583e2
movq -0x480(%rbp), %rdi
leaq 0x239f68(%rip), %rsi    # 0x292358
callq 0x355c0
movq %rax, -0x488(%rbp)
jmp 0x583fe
movq -0x488(%rbp), %rdi
leaq 0x1843d9(%rip), %rsi    # 0x1dc7e5
callq 0x34320
movq %rax, -0x490(%rbp)
jmp 0x5841a
movq -0x490(%rbp), %rdi
leaq 0x18d27c(%rip), %rsi    # 0x1e56a4
callq 0x34ba0
movq %rax, -0x498(%rbp)
jmp 0x58436
movq -0x498(%rbp), %rdi
leaq 0x188368(%rip), %rsi    # 0x1e07ac
callq 0x34320
movq %rax, -0x4a0(%rbp)
jmp 0x58452
leaq 0x239dff(%rip), %rdi    # 0x292258
callq 0x1a900
movq %rax, -0x4a8(%rbp)
jmp 0x58467
movq -0x4a0(%rbp), %rdi
movq -0x4a8(%rbp), %rax
movq %rax, -0x3e0(%rbp)
leaq -0x3e0(%rbp), %rsi
callq 0x355c0
movq %rax, -0x4b0(%rbp)
jmp 0x58491
movq -0x4b0(%rbp), %rdi
leaq 0x19dfdc(%rip), %rsi    # 0x1f647b
callq 0x34320
jmp 0x584a6
leaq -0x3b0(%rbp), %rdi
callq 0x10ff0
jmp 0x584b4
leaq -0x3d0(%rbp), %rdi
callq 0x3100
leaq -0x3d1(%rbp), %rdi
callq 0x3290
addq $0x4b0, %rsp            # imm = 0x4B0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x210(%rbp)
movl %eax, -0x214(%rbp)
jmp 0x5852b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x210(%rbp)
movl %eax, -0x214(%rbp)
jmp 0x5851f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x210(%rbp)
movl %eax, -0x214(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x10ff0
jmp 0x5851d
jmp 0x5851f
leaq -0x200(%rbp), %rdi
callq 0x3100
leaq -0x201(%rbp), %rdi
callq 0x3290
jmp 0x5859b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x210(%rbp)
movl %eax, -0x214(%rbp)
jmp 0x5858f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x210(%rbp)
movl %eax, -0x214(%rbp)
jmp 0x58583
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x210(%rbp)
movl %eax, -0x214(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x10ff0
jmp 0x58581
jmp 0x58583
leaq -0x3d0(%rbp), %rdi
callq 0x3100
leaq -0x3d1(%rbp), %rdi
callq 0x3290
movq -0x210(%rbp), %rdi
callq 0x33a0
movq %rax, %rdi
callq 0x116d0
nop