// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest-death-test.cc
// Function: testing::internal::DeathTestImpl::ReadAndInterpretStatusByte()
void DeathTestImpl::ReadAndInterpretStatusByte() {
  char flag;
  int bytes_read;

  // The read() here blocks until data is available (signifying the
  // failure of the death test) or until the pipe is closed (signifying
  // its success), so it's okay to call this in the parent before
  // the child process has exited.
  do {
    bytes_read = posix::Read(read_fd(), &flag, 1);
  } while (bytes_read == -1 && errno == EINTR);

  if (bytes_read == 0) {
    set_outcome(DIED);
  } else if (bytes_read == 1) {
    switch (flag) {
      case kDeathTestReturned:
        set_outcome(RETURNED);
        break;
      case kDeathTestThrew:
        set_outcome(THREW);
        break;
      case kDeathTestLived:
        set_outcome(LIVED);
        break;
      case kDeathTestInternalError:
        FailFromInternalError(read_fd());  // Does not return.
        break;
      default:
        GTEST_LOG_(FATAL) << "Death test child process reported "
                          << "unexpected status byte ("
                          << static_cast<unsigned int>(flag) << ")";
    }
  } else {
    GTEST_LOG_(FATAL) << "Read from death test child process failed: "
                      << GetLastErrnoDescription();
  }
  GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Close(read_fd()));
  set_read_fd(-1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rdi
callq 0x38040
movl %eax, %edi
leaq -0x9(%rbp), %rsi
movl $0x1, %edx
callq 0x38010
movl %eax, -0x10(%rbp)
xorl %eax, %eax
cmpl $-0x1, -0x10(%rbp)
movb %al, -0x169(%rbp)
jne 0x27d28
callq 0xe090
cmpl $0x4, (%rax)
sete %al
movb %al, -0x169(%rbp)
movb -0x169(%rbp), %al
testb $0x1, %al
jne 0x27cea
cmpl $0x0, -0x10(%rbp)
jne 0x27d4e
movq -0x168(%rbp), %rdi
movl $0x1, %esi
callq 0x38060
jmp 0x27f58
cmpl $0x1, -0x10(%rbp)
jne 0x27ea2
movsbl -0x9(%rbp), %eax
addl $-0x49, %eax
movl %eax, %ecx
movq %rcx, -0x178(%rbp)
subl $0xb, %eax
ja 0x27dde
movq -0x178(%rbp), %rax
leaq 0x61349(%rip), %rcx     # 0x890c4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x168(%rbp), %rdi
movl $0x3, %esi
callq 0x38060
jmp 0x27e83
movq -0x168(%rbp), %rdi
movl $0x4, %esi
callq 0x38060
jmp 0x27e83
movq -0x168(%rbp), %rdi
movl $0x2, %esi
callq 0x38060
jmp 0x27e83
movq -0x168(%rbp), %rdi
callq 0x38040
movl %eax, %edi
callq 0x28240
jmp 0x27e83
leaq 0x6363b(%rip), %rdx     # 0x8b420
leaq -0x14(%rbp), %rdi
movq %rdi, -0x188(%rbp)
movl $0x3, %esi
movl $0x1d1, %ecx            # imm = 0x1D1
callq 0x2dbe0
movq -0x188(%rbp), %rdi
callq 0x305f0
movq %rax, -0x180(%rbp)
jmp 0x27e14
movq -0x180(%rbp), %rdi
leaq 0x63635(%rip), %rsi     # 0x8b457
callq 0xe750
movq %rax, -0x190(%rbp)
jmp 0x27e30
movq -0x190(%rbp), %rdi
leaq 0x6363c(%rip), %rsi     # 0x8b47a
callq 0xe750
movq %rax, -0x198(%rbp)
jmp 0x27e4c
movq -0x198(%rbp), %rdi
movsbl -0x9(%rbp), %esi
callq 0xeb30
movq %rax, -0x1a0(%rbp)
jmp 0x27e65
movq -0x1a0(%rbp), %rdi
leaq 0x66b23(%rip), %rsi     # 0x8e996
callq 0xe750
jmp 0x27e7a
leaq -0x14(%rbp), %rdi
callq 0x2dd20
jmp 0x27f56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x14(%rbp), %rdi
callq 0x2dd20
jmp 0x2822a
leaq 0x63577(%rip), %rdx     # 0x8b420
leaq -0x28(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
movl $0x3, %esi
movl $0x1d6, %ecx            # imm = 0x1D6
callq 0x2dbe0
movq -0x1b0(%rbp), %rdi
callq 0x305f0
movq %rax, -0x1a8(%rbp)
jmp 0x27ed8
movq -0x1a8(%rbp), %rdi
leaq 0x635ad(%rip), %rsi     # 0x8b493
callq 0xe750
movq %rax, -0x1b8(%rbp)
jmp 0x27ef4
leaq -0x48(%rbp), %rdi
callq 0x27ad0
jmp 0x27eff
movq -0x1b8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0xe660
jmp 0x27f11
leaq -0x48(%rbp), %rdi
callq 0xf058
leaq -0x28(%rbp), %rdi
callq 0x2dd20
jmp 0x27f56
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x27f48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x48(%rbp), %rdi
callq 0xf058
leaq -0x28(%rbp), %rdi
callq 0x2dd20
jmp 0x2822a
jmp 0x27f58
jmp 0x27f5a
jmp 0x27f5c
movq -0x168(%rbp), %rdi
callq 0x38040
movl %eax, %edi
callq 0x38080
movl %eax, -0x4c(%rbp)
xorl %eax, %eax
cmpl $-0x1, -0x4c(%rbp)
movb %al, -0x1b9(%rbp)
jne 0x27f91
callq 0xe090
cmpl $0x4, (%rax)
sete %al
movb %al, -0x1b9(%rbp)
movb -0x1b9(%rbp), %al
testb $0x1, %al
jne 0x27f5c
cmpl $-0x1, -0x4c(%rbp)
jne 0x28201
leaq -0x131(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0xee90
movq -0x1c8(%rbp), %rdx
leaq 0x634f9(%rip), %rsi     # 0x8b4bf
leaq -0x130(%rbp), %rdi
callq 0x30890
jmp 0x27fd4
leaq 0x63445(%rip), %rdx     # 0x8b420
leaq -0x110(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x30980
jmp 0x27ff0
leaq 0x634dc(%rip), %rdx     # 0x8b4d3
leaq -0xf0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x30980
jmp 0x2800c
movl $0x1d9, -0x15c(%rbp)    # imm = 0x1D9
leaq -0x158(%rbp), %rdi
leaq -0x15c(%rbp), %rsi
callq 0x35870
jmp 0x2802b
leaq -0xd0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x158(%rbp), %rdx
callq 0x357a0
jmp 0x28047
leaq 0x62784(%rip), %rdx     # 0x8a7d2
leaq -0xb0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x30980
jmp 0x28063
leaq 0x63471(%rip), %rdx     # 0x8b4db
leaq -0x90(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x30980
jmp 0x2807f
leaq 0x6366a(%rip), %rdx     # 0x8b6f0
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x30980
jmp 0x28098
leaq -0x70(%rbp), %rdi
callq 0x27a00
jmp 0x280a3
leaq -0x70(%rbp), %rdi
callq 0xf058
leaq -0x90(%rbp), %rdi
callq 0xf058
leaq -0xb0(%rbp), %rdi
callq 0xf058
leaq -0xd0(%rbp), %rdi
callq 0xf058
leaq -0x158(%rbp), %rdi
callq 0xf058
leaq -0xf0(%rbp), %rdi
callq 0xf058
leaq -0x110(%rbp), %rdi
callq 0xf058
leaq -0x130(%rbp), %rdi
callq 0xf058
leaq -0x131(%rbp), %rdi
callq 0xe850
jmp 0x28201
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x281f3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x281e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x281db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x281cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x281c3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x281b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x281ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x2819f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x70(%rbp), %rdi
callq 0xf058
leaq -0x90(%rbp), %rdi
callq 0xf058
leaq -0xb0(%rbp), %rdi
callq 0xf058
leaq -0xd0(%rbp), %rdi
callq 0xf058
leaq -0x158(%rbp), %rdi
callq 0xf058
leaq -0xf0(%rbp), %rdi
callq 0xf058
leaq -0x110(%rbp), %rdi
callq 0xf058
leaq -0x130(%rbp), %rdi
callq 0xf058
leaq -0x131(%rbp), %rdi
callq 0xe850
jmp 0x2822a
jmp 0x28203
callq 0x380a0
testb $0x1, %al
jne 0x27f5a
movq -0x168(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x380b0
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0xee80
nopw %cs:(%rax,%rax)