// File: /workspace/github_cpp_makefile_star2_O2/halfflat[P]tinyopt/test/googletest/googletest/src/gtest-death-test.cc
// Function: testing::internal::DeathTestImpl::Passed(bool)
bool DeathTestImpl::Passed(bool status_ok) {
  if (!spawned()) return false;

  const std::string error_message = GetErrorLogs();

  bool success = false;
  Message buffer;

  buffer << "Death test: " << statement() << "\n";
  switch (outcome()) {
    case LIVED:
      buffer << "    Result: failed to die.\n"
             << " Error msg:\n"
             << FormatDeathTestOutput(error_message);
      break;
    case THREW:
      buffer << "    Result: threw an exception.\n"
             << " Error msg:\n"
             << FormatDeathTestOutput(error_message);
      break;
    case RETURNED:
      buffer << "    Result: illegal return in test statement.\n"
             << " Error msg:\n"
             << FormatDeathTestOutput(error_message);
      break;
    case DIED:
      if (status_ok) {
        if (matcher_.Matches(error_message)) {
          success = true;
        } else {
          std::ostringstream stream;
          matcher_.DescribeTo(&stream);
          buffer << "    Result: died but not with expected error.\n"
                 << "  Expected: " << stream.str() << "\n"
                 << "Actual msg:\n"
                 << FormatDeathTestOutput(error_message);
        }
      } else {
        buffer << "    Result: died but not with expected exit code:\n"
               << "            " << ExitSummary(status()) << "\n"
               << "Actual msg:\n"
               << FormatDeathTestOutput(error_message);
      }
      break;
    case IN_PROGRESS:
    default:
      GTEST_LOG_(FATAL)
          << "DeathTest::Passed somehow called before conclusion of test";
  }

  DeathTest::set_last_death_test_message(buffer.GetString());
  return success;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x1e8, %rsp            # imm = 0x1E8
cmpb $0x1, 0x28(%rdi)
jne 0x36397
movl %esi, %ebp
movq %rdi, %rbx
movq (%rdi), %rax
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
callq *0x30(%rax)
leaq 0x8(%rsp), %rdi
callq 0x3d5f6
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24e70(%rip), %rsi     # 0x5b0c8
callq 0xd550
movq 0x8(%rbx), %rax
leaq 0x70(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x8(%rsp), %rdi
callq 0x4c162
leaq 0x22edf(%rip), %rsi     # 0x59159
movq %rax, %rdi
callq 0x4c188
movl 0x30(%rbx), %eax
decl %eax
cmpl $0x3, %eax
ja 0x36491
leaq 0x23ae9(%rip), %rcx     # 0x59d80
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
testb %bpl, %bpl
je 0x364cc
addq $0x10, %rbx
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0x4c1b4
movb $0x1, %bpl
testb %al, %al
jne 0x36609
leaq 0x70(%rsp), %rdi
callq 0xd860
leaq 0x70(%rsp), %rsi
movq %rbx, %rdi
callq 0x4c1d6
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24e62(%rip), %rsi     # 0x5b14e
callq 0xd550
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24e7c(%rip), %rsi     # 0x5b17d
callq 0xd550
leaq 0x78(%rsp), %rsi
leaq 0x10(%rsp), %rdi
callq 0xd9e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x10(%rsp), %rsi
callq 0xd4e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x22e21(%rip), %rsi     # 0x59159
callq 0xd550
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24e3d(%rip), %rsi     # 0x5b18a
callq 0xd550
leaq 0x50(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x3670f
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x50(%rsp), %rsi
callq 0xd4e0
leaq 0x50(%rsp), %rdi
callq 0xdbe8
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x70(%rsp), %rdi
callq 0xd140
jmp 0x36607
xorl %ebp, %ebp
jmp 0x36646
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24d71(%rip), %rsi     # 0x5b11f
callq 0xd550
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24d2e(%rip), %rsi     # 0x5b0f1
callq 0xd550
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x3670f
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x70(%rsp), %rsi
callq 0xd4e0
jmp 0x365fd
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24cff(%rip), %rsi     # 0x5b0fe
callq 0xd550
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24cdd(%rip), %rsi     # 0x5b0f1
callq 0xd550
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x3670f
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x70(%rsp), %rsi
callq 0xd4e0
jmp 0x365fd
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24c85(%rip), %rsi     # 0x5b0d5
callq 0xd550
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24c8c(%rip), %rsi     # 0x5b0f1
callq 0xd550
leaq 0x70(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x3670f
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x70(%rsp), %rsi
callq 0xd4e0
jmp 0x365fd
leaq 0x24afe(%rip), %rdx     # 0x5af96
leaq 0x70(%rsp), %rdi
pushq $0x3
popq %rsi
movl $0x26e, %ecx            # imm = 0x26E
callq 0x39dd8
movq 0x4db37(%rip), %rdi     # 0x83fe8
leaq 0x24d1f(%rip), %rsi     # 0x5b1d7
callq 0xd550
leaq 0x70(%rsp), %rdi
callq 0x39e9c
jmp 0x36607
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24cbb(%rip), %rsi     # 0x5b197
callq 0xd550
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24cd9(%rip), %rsi     # 0x5b1ca
callq 0xd550
movl 0x2c(%rbx), %ebx
leaq 0x10(%rsp), %rdi
callq 0x3d5f6
movl %ebx, %ebp
andl $0x7f, %ebx
je 0x3653f
movl %ebx, %eax
shll $0x18, %eax
addl $0x1000000, %eax        # imm = 0x1000000
movq 0x10(%rsp), %r14
cmpl $0x2000000, %eax        # imm = 0x2000000
jl 0x36564
leaq 0x10(%r14), %r15
leaq 0x265c5(%rip), %rsi     # 0x5caf0
movq %r15, %rdi
callq 0xd550
movq %r15, %rdi
movl %ebx, %esi
callq 0xda80
jmp 0x36564
movq 0x10(%rsp), %r14
leaq 0x10(%r14), %r15
leaq 0x26588(%rip), %rsi     # 0x5cad7
movq %r15, %rdi
callq 0xd550
movl %ebp, %eax
movzbl %ah, %esi
movq %r15, %rdi
callq 0xda80
testb %bpl, %bpl
jns 0x36579
leaq 0x10(%r14), %rdi
leaq 0x26592(%rip), %rsi     # 0x5cb06
callq 0xd550
leaq 0x70(%rsp), %rdi
movq %r14, %rsi
callq 0x3d7ba
testq %r14, %r14
je 0x36594
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x70(%rsp), %rsi
callq 0xd4e0
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x22ba2(%rip), %rsi     # 0x59159
callq 0xd550
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x24bbe(%rip), %rsi     # 0x5b18a
callq 0xd550
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x3670f
movq 0x8(%rsp), %rdi
addq $0x10, %rdi
leaq 0x10(%rsp), %rsi
callq 0xd4e0
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x70(%rsp), %rdi
callq 0xdbe8
xorl %ebp, %ebp
movq 0x8(%rsp), %rsi
leaq 0x70(%rsp), %rdi
callq 0x3d7ba
leaq 0x70(%rsp), %rdi
callq 0x35b7c
leaq 0x70(%rsp), %rdi
callq 0xdbe8
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x3663c
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x30(%rsp), %rdi
callq 0xdbe8
movl %ebp, %eax
addq $0x1e8, %rsp            # imm = 0x1E8
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x366bd
jmp 0x366bd
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xdbe8
jmp 0x36685
jmp 0x36682
jmp 0x36691
jmp 0x366ea
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdbe8
jmp 0x366d5
jmp 0x366d2
jmp 0x366ea
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdbe8
jmp 0x36694
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xd140
jmp 0x366ed
jmp 0x366d2
jmp 0x366d2
jmp 0x366d2
jmp 0x366ea
jmp 0x366ea
jmp 0x366ea
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x39e9c
jmp 0x366ed
jmp 0x366ea
movq %rax, %rbx
testq %r14, %r14
je 0x366ed
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
jmp 0x366ed
jmp 0x366d2
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdbe8
jmp 0x366ed
jmp 0x366ea
movq %rax, %rbx
jmp 0x366fd
jmp 0x366ea
movq %rax, %rbx
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x366fd
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x30(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
callq 0xdaa0