// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest-death-test.cc
// Function: testing::internal::DeathTestImpl::Abort(testing::internal::DeathTest::AbortReason)
void DeathTestImpl::Abort(AbortReason reason) {
  // The parent process considers the death test to be a failure if
  // it finds any data in our pipe.  So, here we write a single flag byte
  // to the pipe, then exit.
  const char status_ch =
      reason == TEST_DID_NOT_DIE ? kDeathTestLived :
      reason == TEST_THREW_EXCEPTION ? kDeathTestThrew : kDeathTestReturned;

  GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Write(write_fd(), &status_ch, 1));
  // We are leaking the descriptor here because on some platforms (i.e.,
  // when built as Windows DLL), destructors of global objects will still
  // run after calling _exit(). On such systems, write_fd_ will be
  // indirectly closed from the destructor of UnitTestImpl, causing double
  // close if it is also closed here. On debug configurations, double close
  // may assert. As there are no in-process buffers to flush here, we are
  // relying on the OS to close the descriptor after the process terminates
  // when the destructors are not run.
  _exit(1);  // Exits w/o any normal exit hooks (we were supposed to crash)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x140(%rbp)
cmpl $0x2, -0xc(%rbp)
jne 0x2852d
movb $0x4c, %al
movb %al, -0x141(%rbp)
jmp 0x2855d
movl -0xc(%rbp), %ecx
movb $0x54, %al
movb $0x52, %dl
movb %dl, -0x143(%rbp)
cmpl $0x1, %ecx
movb %al, -0x142(%rbp)
je 0x28551
movb -0x143(%rbp), %al
movb %al, -0x142(%rbp)
movb -0x142(%rbp), %al
movb %al, -0x141(%rbp)
movb -0x141(%rbp), %al
movb %al, -0xd(%rbp)
jmp 0x28568
movq -0x140(%rbp), %rdi
callq 0x38100
movl %eax, %edi
leaq -0xd(%rbp), %rsi
movl $0x1, %edx
callq 0x380d0
movl %eax, -0x14(%rbp)
xorl %eax, %eax
cmpl $-0x1, -0x14(%rbp)
movb %al, -0x144(%rbp)
jne 0x285a6
callq 0xe090
cmpl $0x4, (%rax)
sete %al
movb %al, -0x144(%rbp)
movb -0x144(%rbp), %al
testb $0x1, %al
jne 0x28568
cmpl $-0x1, -0x14(%rbp)
jne 0x28837
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0xee90
movq -0x150(%rbp), %rdx
leaq 0x62ee4(%rip), %rsi     # 0x8b4bf
leaq -0xf8(%rbp), %rdi
callq 0x30890
jmp 0x285e9
leaq 0x62e30(%rip), %rdx     # 0x8b420
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x30980
jmp 0x28605
leaq 0x62ec7(%rip), %rdx     # 0x8b4d3
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x30980
jmp 0x28621
movl $0x1e9, -0x134(%rbp)    # imm = 0x1E9
leaq -0x130(%rbp), %rdi
leaq -0x134(%rbp), %rsi
callq 0x35870
jmp 0x28640
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
leaq -0x130(%rbp), %rdx
callq 0x357a0
jmp 0x2865c
leaq 0x6216f(%rip), %rdx     # 0x8a7d2
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x30980
jmp 0x28675
leaq 0x62e77(%rip), %rdx     # 0x8b4f3
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x30980
jmp 0x2868b
leaq 0x6305e(%rip), %rdx     # 0x8b6f0
leaq -0x38(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x30980
jmp 0x286a1
leaq -0x38(%rbp), %rdi
callq 0x27a00
jmp 0x286ac
leaq -0x38(%rbp), %rdi
callq 0xf058
leaq -0x58(%rbp), %rdi
callq 0xf058
leaq -0x78(%rbp), %rdi
callq 0xf058
leaq -0x98(%rbp), %rdi
callq 0xf058
leaq -0x130(%rbp), %rdi
callq 0xf058
leaq -0xb8(%rbp), %rdi
callq 0xf058
leaq -0xd8(%rbp), %rdi
callq 0xf058
leaq -0xf8(%rbp), %rdi
callq 0xf058
leaq -0xf9(%rbp), %rdi
callq 0xe850
jmp 0x28837
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x28829
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x2881d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x28811
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x28805
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x287f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x287ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x287e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
jmp 0x287db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x108(%rbp)
movl %eax, -0x10c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xf058
leaq -0x58(%rbp), %rdi
callq 0xf058
leaq -0x78(%rbp), %rdi
callq 0xf058
leaq -0x98(%rbp), %rdi
callq 0xf058
leaq -0x130(%rbp), %rdi
callq 0xf058
leaq -0xb8(%rbp), %rdi
callq 0xf058
leaq -0xd8(%rbp), %rdi
callq 0xf058
leaq -0xf8(%rbp), %rdi
callq 0xf058
leaq -0xf9(%rbp), %rdi
callq 0xe850
jmp 0x28850
jmp 0x28839
callq 0x380a0
testb $0x1, %al
jne 0x28566
movl $0x1, %edi
callq 0xed80
movq -0x108(%rbp), %rdi
callq 0xee80
nopl (%rax)