// File: /workspace/github_cpp_makefile_star2_O2/ahupowerdns[P]mcounter/./ext/doctest.h
// Function: doctest::detail::ContextState::finalizeTestCaseData()
void finalizeTestCaseData() {
            seconds = timer.getElapsedSeconds();

            // update the non-atomic counters
            numAsserts += numAssertsCurrentTest_atomic;
            numAssertsFailed += numAssertsFailedCurrentTest_atomic;
            numAssertsCurrentTest       = numAssertsCurrentTest_atomic;
            numAssertsFailedCurrentTest = numAssertsFailedCurrentTest_atomic;

            if(numAssertsFailedCurrentTest)
                failure_flags |= TestCaseFailureReason::AssertFailure;

            if(Approx(currentTest->m_timeout).epsilon(DBL_EPSILON) != 0 &&
               Approx(seconds).epsilon(DBL_EPSILON) > currentTest->m_timeout)
                failure_flags |= TestCaseFailureReason::Timeout;

            if(currentTest->m_should_fail) {
                if(failure_flags) {
                    failure_flags |= TestCaseFailureReason::ShouldHaveFailedAndDid;
                } else {
                    failure_flags |= TestCaseFailureReason::ShouldHaveFailedButDidnt;
                }
            } else if(failure_flags && currentTest->m_may_fail) {
                failure_flags |= TestCaseFailureReason::CouldHaveFailedAndDid;
            } else if(currentTest->m_expected_failures > 0) {
                if(numAssertsFailedCurrentTest == currentTest->m_expected_failures) {
                    failure_flags |= TestCaseFailureReason::FailedExactlyNumTimes;
                } else {
                    failure_flags |= TestCaseFailureReason::DidntFailExactlyNumTimes;
                }
            }

            bool ok_to_fail = (TestCaseFailureReason::ShouldHaveFailedAndDid & failure_flags) ||
                              (TestCaseFailureReason::CouldHaveFailedAndDid & failure_flags) ||
                              (TestCaseFailureReason::FailedExactlyNumTimes & failure_flags);

            // if any subcase has failed - the whole test case has failed
            testCaseSuccess = !(failure_flags && !ok_to_fail);
            if(!testCaseSuccess)
                numTestCasesFailed++;
        }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
addq $0x10f0, %rdi           # imm = 0x10F0
callq 0x12ef4
movsd %xmm0, 0xa8(%rbx)
leaq 0xb8(%rbx), %r14
movq %r14, %rdi
callq 0x122c2
addl %eax, 0x98(%rbx)
leaq 0x8b8(%rbx), %r15
movq %r15, %rdi
callq 0x122c2
addl %eax, 0x9c(%rbx)
movq %r14, %rdi
callq 0x122c2
movl %eax, 0xa0(%rbx)
movq %r15, %rdi
callq 0x122c2
movl %eax, %ebp
movl %eax, 0xa4(%rbx)
testl %eax, %eax
je 0x12608
orb $0x1, 0xb0(%rbx)
movq 0x20(%rbx), %r14
movsd 0x48(%r14), %xmm0
leaq 0x30(%rsp), %rdi
movsd %xmm0, 0x8(%rsp)
movsd %xmm0, 0x10(%rdi)
movaps 0x4c87(%rip), %xmm0     # 0x172b0
movaps %xmm0, (%rdi)
xorps %xmm0, %xmm0
callq 0x6e14
testb %al, %al
je 0x1266a
movsd 0xa8(%rbx), %xmm0
leaq 0x10(%rsp), %rdi
movsd %xmm0, 0x10(%rdi)
movaps 0x4c5f(%rip), %xmm0     # 0x172b0
movaps %xmm0, (%rdi)
movsd 0x8(%rsp), %xmm0
callq 0x6e8c
testb %al, %al
je 0x1266a
orb $0x10, 0xb0(%rbx)
movl 0xb0(%rbx), %eax
cmpb $0x1, 0x3c(%r14)
jne 0x12686
movl %eax, %ecx
orl $0x40, %ecx
testl %eax, %eax
pushq $0x20
popq %rax
cmovnel %ecx, %eax
jmp 0x126b0
testl %eax, %eax
je 0x12698
cmpb $0x1, 0x3b(%r14)
jne 0x12698
orl $0x200, %eax            # imm = 0x200
jmp 0x126b0
movl 0x40(%r14), %ecx
testl %ecx, %ecx
jle 0x126b6
cmpl %ecx, %ebp
jne 0x126ab
orl $0x100, %eax            # imm = 0x100
jmp 0x126b0
orl $0x80, %eax
movl %eax, 0xb0(%rbx)
testw $0x340, %ax             # imm = 0x340
setne %cl
testl %eax, %eax
sete %al
orb %cl, %al
movb %al, 0xb4(%rbx)
jne 0x126d2
incl 0x94(%rbx)
addq $0x48, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop