// File: /workspace/github_cpp_makefile_star2_O3/dadocolussi[P]gdc-circular_queue/tests/catch.hpp
// Function: Catch::ConsoleReporter::AssertionPrinter::AssertionPrinter(std::ostream&, Catch::AssertionStats const&, bool)
AssertionPrinter( std::ostream& _stream, AssertionStats const& _stats, bool _printInfoMessages )
            :   stream( _stream ),
                stats( _stats ),
                result( _stats.assertionResult ),
                colour( Colour::None ),
                message( result.getMessage() ),
                messages( _stats.infoMessages ),
                printInfoMessages( _printInfoMessages )
            {
                switch( result.getResultType() ) {
                    case ResultWas::Ok:
                        colour = Colour::Success;
                        passOrFail = "PASSED";
                        //if( result.hasMessage() )
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "with messages";
                        break;
                    case ResultWas::ExpressionFailed:
                        if( result.isOk() ) {
                            colour = Colour::Success;
                            passOrFail = "FAILED - but was ok";
                        }
                        else {
                            colour = Colour::Error;
                            passOrFail = "FAILED";
                        }
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "with messages";
                        break;
                    case ResultWas::ThrewException:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "due to unexpected exception with message";
                        break;
                    case ResultWas::FatalErrorCondition:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "due to a fatal error condition";
                        break;
                    case ResultWas::DidntThrowException:
                        colour = Colour::Error;
                        passOrFail = "FAILED";
                        messageLabel = "because no exception was thrown where one was expected";
                        break;
                    case ResultWas::Info:
                        messageLabel = "info";
                        break;
                    case ResultWas::Warning:
                        messageLabel = "warning";
                        break;
                    case ResultWas::ExplicitFailure:
                        passOrFail = "FAILED";
                        colour = Colour::Error;
                        if( _stats.infoMessages.size() == 1 )
                            messageLabel = "explicitly with message";
                        if( _stats.infoMessages.size() > 1 )
                            messageLabel = "explicitly with messages";
                        break;
                    // These cases are here to prevent compiler warnings
                    case ResultWas::Unknown:
                    case ResultWas::FailureBit:
                    case ResultWas::Exception:
                        passOrFail = "** internal error **";
                        colour = Colour::Error;
                        break;
                }
            }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %ecx, %r14d
movq %rdx, %rbp
movq %rdi, %r12
movq %rsi, (%rdi)
movq %rdx, 0x8(%rdi)
leaq 0x8(%rdx), %rax
movq %rax, 0x10(%rdi)
movl $0x0, 0x18(%rdi)
leaq 0x20(%rdi), %rax
movq %rax, 0x8(%rsp)
leaq 0x30(%rdi), %rax
movq %rax, 0x20(%rsp)
movq %rax, 0x20(%rdi)
xorl %eax, %eax
movq %rax, 0x28(%rdi)
movb %al, 0x30(%rdi)
leaq 0x40(%rdi), %rcx
movq %rcx, 0x10(%rsp)
leaq 0x50(%rdi), %rcx
movq %rcx, 0x18(%rsp)
movq %rcx, 0x40(%rdi)
movq %rax, 0x48(%rdi)
movb %al, 0x50(%rdi)
leaq 0x60(%rdi), %r15
leaq 0x70(%rdi), %rbx
movq %rbx, 0x60(%rdi)
movq 0x98(%rdx), %rsi
movq 0xa0(%rdx), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0x319ec
leaq 0x80(%r12), %r13
leaq 0xc0(%rbp), %rsi
movq %r13, %rdi
callq 0x1b11a
movb %r14b, 0x98(%r12)
movq 0x10(%r12), %rcx
movl 0xb0(%rcx), %eax
cmpl $0x11, %eax
jg 0x2dd51
leal 0x1(%rax), %edx
cmpl $0x3, %edx
ja 0x2ddb6
leaq 0x16ace(%rip), %rax     # 0x447b4
movslq (%rax,%rdx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl $0x3, 0x18(%r12)
movq 0x28(%r12), %rdx
leaq 0x17d3a(%rip), %rcx     # 0x45a3e
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
cmpq $0x78, %rax
jne 0x2de50
movq 0x48(%r12), %rdx
leaq 0x17d42(%rip), %rcx     # 0x45a7c
movl $0xc, %r8d
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
jmp 0x2de42
cmpl $0x110, %eax            # imm = 0x110
jle 0x2de7e
cmpl $0x111, %eax            # imm = 0x111
je 0x2df85
cmpl $0x112, %eax            # imm = 0x112
je 0x2df4f
cmpl $0x210, %eax            # imm = 0x210
jne 0x2dfe8
movl $0x12, 0x18(%r12)
movq 0x28(%r12), %rdx
leaq 0x17cc7(%rip), %rcx     # 0x45a59
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movl $0x1e, %r8d
leaq 0x17cd8(%rip), %rcx     # 0x45a89
jmp 0x2dfd7
cmpl $0x10, %eax
je 0x2de8e
cmpl $0x11, %eax
jne 0x2dfe8
testb $0x8, 0x68(%rcx)
movl $0x12, %eax
movl $0x3, %edx
cmovel %eax, %edx
leaq 0x17c79(%rip), %rax     # 0x45a59
leaq 0x17c5e(%rip), %rcx     # 0x45a45
cmoveq %rax, %rcx
movl $0x6, %eax
movl $0x13, %r8d
cmoveq %rax, %r8
movl %edx, 0x18(%r12)
movq 0x28(%r12), %rdx
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
cmpq $0x78, %rax
jne 0x2de50
movq 0x48(%r12), %rdx
leaq 0x17c4c(%rip), %rcx     # 0x45a7c
movl $0xc, %r8d
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
sarq $0x3, %rax
movabsq $-0x1111111111111111, %rcx # imm = 0xEEEEEEEEEEEEEEEF
imulq %rax, %rcx
cmpq $0x1, %rcx
jbe 0x2dfe8
movl $0xd, %r8d
leaq 0x17c96(%rip), %rcx     # 0x45b0f
jmp 0x2dfd7
cmpl $0x12, %eax
je 0x2deba
cmpl $0x110, %eax            # imm = 0x110
jne 0x2dfe8
movq 0x28(%r12), %rdx
leaq 0x17c83(%rip), %rcx     # 0x45b1d
movl $0x14, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movl $0x12, 0x18(%r12)
jmp 0x2dfe8
movq 0x28(%r12), %rdx
leaq 0x17b93(%rip), %rcx     # 0x45a59
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movl $0x12, 0x18(%r12)
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
cmpq $0x78, %rax
jne 0x2df21
movq 0x48(%r12), %rdx
leaq 0x17beb(%rip), %rcx     # 0x45aec
movl $0x17, %r8d
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movq 0xc8(%rbp), %rax
subq 0xc0(%rbp), %rax
sarq $0x3, %rax
movabsq $-0x1111111111111111, %rcx # imm = 0xEEEEEEEEEEEEEEEF
imulq %rax, %rcx
cmpq $0x2, %rcx
jb 0x2dfe8
movl $0x18, %r8d
leaq 0x17bba(%rip), %rcx     # 0x45b04
jmp 0x2dfd7
movl $0x12, 0x18(%r12)
movq 0x28(%r12), %rdx
leaq 0x17af5(%rip), %rcx     # 0x45a59
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movl $0x36, %r8d
leaq 0x17b25(%rip), %rcx     # 0x45aa8
jmp 0x2dfd7
movl $0x12, 0x18(%r12)
movq 0x28(%r12), %rdx
leaq 0x17abf(%rip), %rcx     # 0x45a59
movl $0x6, %r8d
movq 0x8(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
movl $0x28, %r8d
leaq 0x17aa7(%rip), %rcx     # 0x45a60
jmp 0x2dfd7
movl $0x4, %r8d
leaq 0x17b17(%rip), %rcx     # 0x45adf
jmp 0x2dfd7
movl $0x7, %r8d
leaq 0x17b0d(%rip), %rcx     # 0x45ae4
movq 0x48(%r12), %rdx
movq 0x10(%rsp), %rdi
xorl %esi, %esi
callq 0xb6d0
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r12
jmp 0x2e00c
movq %rax, %r12
jmp 0x2e01f
movq %rax, %r12
movq %r13, %rdi
callq 0x15b00
movq (%r15), %rdi
cmpq %rbx, %rdi
je 0x2e01f
movq (%rbx), %rsi
incq %rsi
callq 0xb4a0
movq 0x10(%rsp), %rax
movq (%rax), %rdi
cmpq 0x18(%rsp), %rdi
je 0x2e03e
movq 0x18(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb4a0
movq 0x8(%rsp), %rax
movq (%rax), %rdi
cmpq 0x20(%rsp), %rdi
je 0x2e05d
movq 0x20(%rsp), %rax
movq (%rax), %rsi
incq %rsi
callq 0xb4a0
movq %r12, %rdi
callq 0xb820
nop