// File: /workspace/github_cpp_makefile_star2_O1/AMDmi3[P]dangling_ptr/tests/testing.h
// Function: void Tester::ExpectException<dangling::bad_access>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::function<void ()>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int, Tester::DummyArgument)
void ExpectException(const std::string& expression_str, std::function<void()>&& func, const std::string& exception_str, const std::string& description, int flags, DummyArgument) {
		bool as_expected = false;
		bool thrown = false;
		bool std_exception = false;

		std::string what;

		try {
			func();
		} catch (E&) {
			as_expected = true;
			thrown = true;
		} catch (std::exception& e) {
			thrown = true;
			std_exception = true;
			what = e.what();
		} catch (...) {
			thrown = true;
		}

		std::string message;

		if (thrown && as_expected)
			message = Stylify(EXPRESSION, expression_str) + " has thrown " + Stylify(EXPRESSION, exception_str) + " as expected";
		else if (thrown && std_exception)
			message = Stylify(EXPRESSION, expression_str) + " has thrown unexpected exception derived from std::exception (what(): " + Stylify(LITERAL, what) + "), while expected " + Stylify(EXPRESSION, exception_str);
		else if (thrown)
			message = Stylify(EXPRESSION, expression_str) + " has thrown unexpected exception not derived from std::exception, while expected " + Stylify(EXPRESSION, exception_str);
		else
			message = Stylify(EXPRESSION, expression_str) + " hasn't thrown expected exception " + Stylify(EXPRESSION, exception_str);

		RegisterTest(thrown && as_expected, flags, message, description);
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movl %r9d, 0x44(%rsp)
movq %r8, %r13
movq %rcx, %r15
movq %rsi, %r12
movq %rdi, %r14
leaq 0xd8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq $0x0, -0x8(%rbp)
movb $0x0, (%rbp)
cmpq $0x0, 0x10(%rdx)
je 0x933a
movq %rdx, %rdi
callq *0x18(%rdx)
xorl %eax, %eax
xorl %ecx, %ecx
xorl %ebx, %ebx
leaq 0xb8(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq $0x0, -0x8(%rdx)
movb $0x0, (%rdx)
andb %cl, %bl
cmpb $0x1, %bl
jne 0x8ae6
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
movl $0x4, %edx
movq %r12, %rcx
callq 0x7c68
leaq 0x1b61(%rip), %rsi      # 0xa60e
leaq 0x20(%rsp), %rdi
callq 0x2250
leaq 0x78(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8ba3
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x8bab
andb %cl, %al
cmpb $0x1, %al
jne 0x8b47
leaq 0x88(%rsp), %rdi
movq %r14, %rsi
movl $0x4, %edx
movq %r12, %rcx
callq 0x7c68
leaq 0x1b10(%rip), %rsi      # 0xa61b
leaq 0x88(%rsp), %rdi
callq 0x2250
leaq 0x30(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8dde
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x8de6
testb %cl, %cl
je 0x8c39
leaq 0x68(%rsp), %rdi
movq %r14, %rsi
movl $0x4, %edx
movq %r12, %rcx
callq 0x7c68
leaq 0x1b0a(%rip), %rsi      # 0xa675
leaq 0x68(%rsp), %rdi
callq 0x2250
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x90d9
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x90e1
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x88(%rsp), %rdi
movq %r14, %rsi
movl $0x4, %edx
movq %r15, %rcx
callq 0x7c68
movq 0x68(%rsp), %rcx
movq 0x70(%rsp), %r8
movq 0x90(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x8c00
movq 0x78(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8c25
leaq 0x98(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x8c20
movq 0x98(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8c8d
movq 0x88(%rsp), %rsi
leaq 0x68(%rsp), %rdi
callq 0x2060
jmp 0x8c9e
leaq 0x68(%rsp), %rdi
movq %r14, %rsi
movl $0x4, %edx
movq %r12, %rcx
callq 0x7c68
leaq 0x1a72(%rip), %rsi      # 0xa6c7
leaq 0x68(%rsp), %rdi
callq 0x2250
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9164
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x916c
leaq 0x88(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2180
leaq 0x10(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x8cc1
movq %rsi, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x8cc7
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x180c(%rip), %rsi      # 0xa4f7
movq %rsp, %rdi
callq 0x2250
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8d1a
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x8d21
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
leaq 0x48(%rsp), %r15
movq %rdx, 0x8(%r15)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xa8(%rsp), %rdi
movq %r15, %rsi
callq 0x21a0
movq (%r15), %rdi
cmpq %rbp, %rdi
je 0x8d62
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0xd8(%rsp), %rbp
movl 0x44(%rsp), %r15d
je 0x8d8a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8dab
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x2160
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x8dc2
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x92cd
movq 0x30(%rsp), %rsi
jmp 0x92c5
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x108(%rsp), %rdi
leaq 0xc8(%rsp), %rcx
movq %r14, %rsi
movl $0x3, %edx
callq 0x7c68
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %r8
movq 0x110(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x8e40
movq 0x30(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8e65
leaq 0x118(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x8e60
movq 0x118(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8e79
movq 0x108(%rsp), %rsi
leaq 0x20(%rsp), %rdi
callq 0x2060
jmp 0x8e8a
leaq 0x108(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2180
leaq 0x78(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x8eae
movq %rsi, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x8eb4
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x178a(%rip), %rsi      # 0xa662
leaq 0x68(%rsp), %rdi
callq 0x2250
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8f09
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x8f11
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xe8(%rsp), %rdi
movq %r14, %rsi
movl $0x4, %edx
movq %r15, %rcx
callq 0x7c68
movq (%rsp), %rcx
movq 0x8(%rsp), %r8
movq 0xf0(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x8f65
movq 0x10(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8f8a
leaq 0xf8(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x8f85
movq 0xf8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x8f9c
movq 0xe8(%rsp), %rsi
movq %rsp, %rdi
callq 0x2060
jmp 0x8fad
leaq 0xe8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2180
leaq 0x58(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x8fd1
movq %rsi, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x8fd7
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa8(%rsp), %rdi
leaq 0x48(%rsp), %r15
movq %r15, %rsi
callq 0x21a0
movq (%r15), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x9023
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movl 0x44(%rsp), %r15d
je 0x9049
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x2160
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x905f
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq 0x30(%rsp), %r12
je 0x907f
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x90a0
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x2160
movq 0x20(%rsp), %rdi
cmpq %r12, %rdi
je 0x90b7
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x92cd
movq 0x98(%rsp), %rsi
jmp 0x92c5
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
movl $0x4, %edx
movq %r15, %rcx
callq 0x7c68
movq (%rsp), %rcx
movq 0x8(%rsp), %r8
movq 0x28(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x912f
movq 0x10(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x9152
leaq 0x30(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x9149
movq 0x30(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x91e8
movq 0x20(%rsp), %rsi
movq %rsp, %rdi
callq 0x2060
jmp 0x9206
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x20(%rsp), %rdi
movq %r14, %rsi
movl $0x4, %edx
movq %r15, %rcx
callq 0x7c68
movq (%rsp), %rcx
movq 0x8(%rsp), %r8
movq 0x28(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r12, %rcx
je 0x91ba
movq 0x10(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x91d9
leaq 0x30(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x91d4
movq 0x30(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x91f8
movq 0x20(%rsp), %rsi
movq %rsp, %rdi
callq 0x2060
jmp 0x9206
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2180
jmp 0x9206
leaq 0x20(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2180
leaq 0x58(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x922a
movq %rsi, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x9230
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xa8(%rsp), %rdi
leaq 0x48(%rsp), %r15
movq %r15, %rsi
callq 0x21a0
movq (%r15), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x927c
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
movl 0x44(%rsp), %r15d
je 0x929c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2160
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x92b2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2160
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x92cd
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2160
movzbl %bl, %esi
leaq 0xa8(%rsp), %rcx
movq %r14, %rdi
movl %r15d, %edx
movq %r13, %r8
callq 0x78de
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x930b
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x2160
movq 0xc8(%rsp), %rdi
cmpq %rbp, %rdi
je 0x9328
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x2160
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x2080
jmp 0x9341
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9366
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x9366
jmp 0x9363
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x9383
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x9383
jmp 0x9380
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x94ff
movq 0x78(%rsp), %rsi
jmp 0x94f0
jmp 0x94fc
jmp 0x94fc
movq %rax, %rbx
leaq 0xf8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x93d2
movq 0xf8(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x93d2
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x93ed
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x93ed
movq %rax, %rbx
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x940d
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x940d
movq %rax, %rbx
leaq 0x118(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9433
movq 0x118(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x9433
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x9454
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x9454
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x94ff
movq 0x98(%rsp), %rsi
jmp 0x94f0
jmp 0x94fc
movq %rax, %rbx
leaq 0x10(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x949b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x949b
movq %rax, %rbx
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x94c1
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x94c1
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r12, %rdi
je 0x94dd
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x94dd
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x94ff
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x2160
jmp 0x94ff
jmp 0x94fc
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x9524
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x2160
movq 0xc8(%rsp), %rdi
leaq 0xd8(%rsp), %rax
cmpq %rax, %rdi
je 0x9549
movq 0xd8(%rsp), %rsi
incq %rsi
callq 0x2160
movq %rbx, %rdi
callq 0x2230
movq %rdx, %rbx
movq %rax, %rdi
cmpl $0x3, %ebx
jne 0x956e
callq 0x2090
callq 0x2200
movb $0x1, %cl
xorl %eax, %eax
movb $0x1, %bl
jmp 0x95a9
callq 0x2090
cmpl $0x2, %ebx
jne 0x959e
movq (%rax), %rcx
movq %rax, %rdi
callq *0x10(%rcx)
leaq 0xc8(%rsp), %rdi
movq %rax, %rsi
callq 0x21c0
callq 0x2200
movb $0x1, %al
xorl %ebx, %ebx
movb $0x1, %cl
jmp 0x95a9
callq 0x2200
movb $0x1, %cl
xorl %eax, %eax
xorl %ebx, %ebx
leaq 0xd8(%rsp), %rbp
jmp 0x8a73
jmp 0x95cf
jmp 0x95cf
movq %rax, %rbx
callq 0x2200
jmp 0x9524
movq %rax, %rdi
callq 0x7574
movq %rax, %rbx
jmp 0x9524