// File: /workspace/github_cpp_makefile_star2_O2/AMDmi3[P]testing/./testing.h
// Function: Tester::ExpectNoException(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&, int, Tester::DummyArgument)
void ExpectNoException(const std::string& expression_str, std::function<void()>&& func, const std::string& description, int flags, DummyArgument) {
		bool thrown = false;
		bool std_exception = false;

		std::string what;

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

		std::string message;

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

		RegisterTest(!thrown, flags, message, description);
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movl %r8d, %ebp
movq %rcx, %rbx
movq %rsi, %r15
movq %rdi, %r14
leaq 0x78(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq %rdx, %rdi
callq 0x3c28
xorl %r13d, %r13d
xorl %r12d, %r12d
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
andb %r12b, %r13b
cmpb $0x1, %r13b
jne 0x3a94
leaq 0xa8(%rsp), %rdi
pushq $0x4
popq %rdx
movq %r14, %rsi
movq %r15, %rcx
callq 0x3c38
leaq 0x2b0e(%rip), %rdx      # 0x64fd
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x33dd
leaq 0x88(%rsp), %rdi
pushq $0x3
popq %rdx
leaq 0x68(%rsp), %rcx
movq %r14, %rsi
callq 0x3c38
leaq 0x8(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x331c
leaq 0x2674(%rip), %rdx      # 0x60b1
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33dd
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %r15
movq %r15, %rsi
callq 0x2170
movq %r15, %rdi
callq 0x20a0
leaq 0x8(%rsp), %rdi
callq 0x20a0
leaq 0x88(%rsp), %rdi
callq 0x20a0
leaq 0xc8(%rsp), %rdi
callq 0x20a0
leaq 0xa8(%rsp), %rdi
jmp 0x3b0c
testb %r12b, %r12b
je 0x3ac4
leaq 0x8(%rsp), %rdi
pushq $0x4
popq %rdx
movq %r14, %rsi
movq %r15, %rcx
callq 0x3c38
leaq 0x2a91(%rip), %rdx      # 0x6544
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33dd
jmp 0x3aed
leaq 0x8(%rsp), %rdi
pushq $0x4
popq %rdx
movq %r14, %rsi
movq %r15, %rcx
callq 0x3c38
leaq 0x2aa7(%rip), %rdx      # 0x6585
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x33dd
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %r15
movq %r15, %rsi
callq 0x2170
movq %r15, %rdi
callq 0x20a0
leaq 0x8(%rsp), %rdi
callq 0x20a0
xorb $0x1, %r12b
movzbl %r12b, %esi
leaq 0x28(%rsp), %rcx
movq %r14, %rdi
movl %ebp, %edx
movq %rbx, %r8
callq 0x3d2c
leaq 0x28(%rsp), %rdi
callq 0x20a0
leaq 0x68(%rsp), %rdi
callq 0x20a0
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x3b53
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0x3b9f
jmp 0x3ba8
jmp 0x3ba8
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x20a0
jmp 0x3b73
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x20a0
jmp 0x3b85
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0x20a0
jmp 0x3b97
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x20a0
jmp 0x3bab
jmp 0x3ba8
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x20a0
leaq 0x68(%rsp), %rdi
callq 0x20a0
movq %rbx, %rdi
callq 0x2220
movq %rdx, %r12
movq %rax, %rdi
callq 0x2080
cmpl $0x2, %r12d
jne 0x3bfe
movq (%rax), %rcx
movq %rax, %rdi
callq *0x10(%rcx)
leaq 0x68(%rsp), %rdi
movq %rax, %rsi
callq 0x2250
movb $0x1, %r13b
callq 0x21f0
movb $0x1, %r12b
jmp 0x39b4
callq 0x21f0
movb $0x1, %r12b
xorl %r13d, %r13d
jmp 0x39b4
jmp 0x3c10
movq %rax, %rbx
jmp 0x3bb5
movq %rax, %rbx
callq 0x21f0
jmp 0x3bb5
movq %rax, %rdi
callq 0x3904
nop