// File: /workspace/github_c_makefile_star2_O0/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest-death-test.cc
// Function: testing::internal::NoExecDeathTest::AssumeRole()
DeathTest::TestRole NoExecDeathTest::AssumeRole() {
  const size_t thread_count = GetThreadCount();
  if (thread_count != 1) {
    GTEST_LOG_(WARNING) << DeathTestThreadWarning(thread_count);
  }

  int pipe_fd[2];
  GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1);

  DeathTest::set_last_death_test_message("");
  CaptureStderr();
  // When we fork the process below, the log file buffers are copied, but the
  // file descriptors are shared.  We flush all log files here so that closing
  // the file descriptors in the child process doesn't throw off the
  // synchronization between descriptors and buffers in the parent process.
  // This is as close to the fork as possible to avoid a race condition in case
  // there are multiple threads running before the death test, and another
  // thread writes to the log file.
  FlushInfoLog();

  const pid_t child_pid = fork();
  GTEST_DEATH_TEST_CHECK_(child_pid != -1);
  set_child_pid(child_pid);
  if (child_pid == 0) {
    GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[0]));
    set_write_fd(pipe_fd[1]);
    // Redirects all logging to stderr in the child process to prevent
    // concurrent writes to the log files.  We capture stderr in the parent
    // process and append the child process' output to a log.
    LogToStderr();
    // Event forwarding to the listeners of event listener API mush be shut
    // down in death test subprocesses.
    GetUnitTestImpl()->listeners()->SuppressEventForwarding();
    g_in_fast_death_test_child = true;
    return EXECUTE_TEST;
  } else {
    GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1]));
    set_read_fd(pipe_fd[0]);
    set_spawned(true);
    return OVERSEE_TEST;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4d0, %rsp            # imm = 0x4D0
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x488(%rbp)
callq 0x2a1b0
movq %rax, -0x18(%rbp)
cmpq $0x1, -0x18(%rbp)
je 0x2963a
leaq 0x61e7b(%rip), %rdx     # 0x8b420
leaq -0x1c(%rbp), %rdi
movq %rdi, -0x498(%rbp)
movl $0x1, %esi
movl $0x344, %ecx            # imm = 0x344
callq 0x2dbe0
movq -0x498(%rbp), %rdi
callq 0x305f0
movq %rax, -0x490(%rbp)
jmp 0x295d4
movq -0x18(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x2a290
jmp 0x295e3
movq -0x490(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xe660
jmp 0x295f5
leaq -0x50(%rbp), %rdi
callq 0xf058
leaq -0x1c(%rbp), %rdi
callq 0x2dd20
jmp 0x2963a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2962c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xf058
leaq -0x1c(%rbp), %rdi
callq 0x2dd20
jmp 0x2a198
jmp 0x2963c
leaq -0x58(%rbp), %rdi
callq 0xeb60
cmpl $-0x1, %eax
setne %al
movzbl %al, %edi
andl $0x1, %edi
callq 0x13f80
testb $0x1, %al
jne 0x29878
leaq -0x119(%rbp), %rdi
movq %rdi, -0x4a0(%rbp)
callq 0xee90
movq -0x4a0(%rbp), %rdx
leaq 0x61e40(%rip), %rsi     # 0x8b4bf
leaq -0x118(%rbp), %rdi
callq 0x30890
jmp 0x2968d
leaq 0x61d8c(%rip), %rdx     # 0x8b420
leaq -0xf8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x30980
jmp 0x296a9
leaq 0x61e23(%rip), %rdx     # 0x8b4d3
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x30980
jmp 0x296c5
movl $0x348, -0x144(%rbp)    # imm = 0x348
leaq -0x140(%rbp), %rdi
leaq -0x144(%rbp), %rsi
callq 0x35870
jmp 0x296e4
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x140(%rbp), %rdx
callq 0x357a0
jmp 0x29700
leaq 0x610cb(%rip), %rdx     # 0x8a7d2
leaq -0x98(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x30980
jmp 0x2971c
leaq 0x61f68(%rip), %rdx     # 0x8b68b
leaq -0x78(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x30980
jmp 0x29735
leaq -0x78(%rbp), %rdi
callq 0x27a00
jmp 0x29740
leaq -0x78(%rbp), %rdi
callq 0xf058
leaq -0x98(%rbp), %rdi
callq 0xf058
leaq -0xb8(%rbp), %rdi
callq 0xf058
leaq -0x140(%rbp), %rdi
callq 0xf058
leaq -0xd8(%rbp), %rdi
callq 0xf058
leaq -0xf8(%rbp), %rdi
callq 0xf058
leaq -0x118(%rbp), %rdi
callq 0xf058
leaq -0x119(%rbp), %rdi
callq 0xe850
jmp 0x29878
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29867
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2985b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2984f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29843
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29837
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2982b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2981f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x78(%rbp), %rdi
callq 0xf058
leaq -0x98(%rbp), %rdi
callq 0xf058
leaq -0xb8(%rbp), %rdi
callq 0xf058
leaq -0x140(%rbp), %rdi
callq 0xf058
leaq -0xd8(%rbp), %rdi
callq 0xf058
leaq -0xf8(%rbp), %rdi
callq 0xf058
leaq -0x118(%rbp), %rdi
callq 0xf058
leaq -0x119(%rbp), %rdi
callq 0xe850
jmp 0x2a198
jmp 0x2987a
callq 0x380a0
testb $0x1, %al
jne 0x2963c
leaq -0x169(%rbp), %rdi
movq %rdi, -0x4a8(%rbp)
callq 0xee90
movq -0x4a8(%rbp), %rdx
leaq 0x66f28(%rip), %rsi     # 0x907d0
leaq -0x168(%rbp), %rdi
callq 0x30890
jmp 0x298b6
leaq -0x168(%rbp), %rdi
callq 0x27ca0
jmp 0x298c4
leaq -0x168(%rbp), %rdi
callq 0xf058
leaq -0x169(%rbp), %rdi
callq 0xe850
callq 0x2a3b0
callq 0x38370
callq 0xe1a0
movl %eax, -0x170(%rbp)
cmpl $-0x1, -0x170(%rbp)
setne %al
movzbl %al, %edi
andl $0x1, %edi
callq 0x13f80
testb $0x1, %al
jne 0x29b6e
leaq -0x231(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
callq 0xee90
movq -0x4b0(%rbp), %rdx
leaq 0x61b90(%rip), %rsi     # 0x8b4bf
leaq -0x230(%rbp), %rdi
callq 0x30890
jmp 0x2993d
leaq 0x61adc(%rip), %rdx     # 0x8b420
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x30980
jmp 0x29959
leaq 0x61b73(%rip), %rdx     # 0x8b4d3
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x30980
jmp 0x29975
movl $0x356, -0x25c(%rbp)    # imm = 0x356
leaq -0x258(%rbp), %rdi
leaq -0x25c(%rbp), %rsi
callq 0x35870
jmp 0x29994
leaq -0x1d0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
leaq -0x258(%rbp), %rdx
callq 0x357a0
jmp 0x299b0
leaq 0x60e1b(%rip), %rdx     # 0x8a7d2
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x30980
jmp 0x299cc
leaq 0x61ccc(%rip), %rdx     # 0x8b69f
leaq -0x190(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x30980
jmp 0x299e8
leaq -0x190(%rbp), %rdi
callq 0x27a00
jmp 0x299f6
leaq -0x190(%rbp), %rdi
callq 0xf058
leaq -0x1b0(%rbp), %rdi
callq 0xf058
leaq -0x1d0(%rbp), %rdi
callq 0xf058
leaq -0x258(%rbp), %rdi
callq 0xf058
leaq -0x1f0(%rbp), %rdi
callq 0xf058
leaq -0x210(%rbp), %rdi
callq 0xf058
leaq -0x230(%rbp), %rdi
callq 0xf058
leaq -0x231(%rbp), %rdi
callq 0xe850
jmp 0x29b6e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29a81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x168(%rbp), %rdi
callq 0xf058
leaq -0x169(%rbp), %rdi
callq 0xe850
jmp 0x2a198
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29b5d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29b51
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29b45
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29b39
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29b2d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29b21
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29b15
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0xf058
leaq -0x1b0(%rbp), %rdi
callq 0xf058
leaq -0x1d0(%rbp), %rdi
callq 0xf058
leaq -0x258(%rbp), %rdi
callq 0xf058
leaq -0x1f0(%rbp), %rdi
callq 0xf058
leaq -0x210(%rbp), %rdi
callq 0xf058
leaq -0x230(%rbp), %rdi
callq 0xf058
leaq -0x231(%rbp), %rdi
callq 0xe850
jmp 0x2a198
jmp 0x29b70
callq 0x380a0
testb $0x1, %al
jne 0x298f1
movq -0x488(%rbp), %rdi
movl -0x170(%rbp), %esi
callq 0x38380
cmpl $0x0, -0x170(%rbp)
jne 0x29ea0
jmp 0x29b9e
jmp 0x29ba0
movl -0x58(%rbp), %edi
callq 0xf020
movl %eax, -0x260(%rbp)
xorl %eax, %eax
cmpl $-0x1, -0x260(%rbp)
movb %al, -0x4b1(%rbp)
jne 0x29bd0
callq 0xe090
cmpl $0x4, (%rax)
sete %al
movb %al, -0x4b1(%rbp)
movb -0x4b1(%rbp), %al
testb $0x1, %al
jne 0x29ba0
cmpl $-0x1, -0x260(%rbp)
jne 0x29e55
leaq -0x341(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0xee90
movq -0x4c0(%rbp), %rdx
leaq 0x618b7(%rip), %rsi     # 0x8b4bf
leaq -0x340(%rbp), %rdi
callq 0x30890
jmp 0x29c16
leaq 0x61803(%rip), %rdx     # 0x8b420
leaq -0x320(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x30980
jmp 0x29c32
leaq 0x6189a(%rip), %rdx     # 0x8b4d3
leaq -0x300(%rbp), %rdi
leaq -0x320(%rbp), %rsi
callq 0x30980
jmp 0x29c4e
movl $0x359, -0x36c(%rbp)    # imm = 0x359
leaq -0x368(%rbp), %rdi
leaq -0x36c(%rbp), %rsi
callq 0x35870
jmp 0x29c6d
leaq -0x2e0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
leaq -0x368(%rbp), %rdx
callq 0x357a0
jmp 0x29c89
leaq 0x60b42(%rip), %rdx     # 0x8a7d2
leaq -0x2c0(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x30980
jmp 0x29ca5
leaq 0x61a03(%rip), %rdx     # 0x8b6af
leaq -0x2a0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
callq 0x30980
jmp 0x29cc1
leaq 0x61a28(%rip), %rdx     # 0x8b6f0
leaq -0x280(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x30980
jmp 0x29cdd
leaq -0x280(%rbp), %rdi
callq 0x27a00
jmp 0x29ceb
leaq -0x280(%rbp), %rdi
callq 0xf058
leaq -0x2a0(%rbp), %rdi
callq 0xf058
leaq -0x2c0(%rbp), %rdi
callq 0xf058
leaq -0x2e0(%rbp), %rdi
callq 0xf058
leaq -0x368(%rbp), %rdi
callq 0xf058
leaq -0x300(%rbp), %rdi
callq 0xf058
leaq -0x320(%rbp), %rdi
callq 0xf058
leaq -0x340(%rbp), %rdi
callq 0xf058
leaq -0x341(%rbp), %rdi
callq 0xe850
jmp 0x29e55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29e44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29e38
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29e2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29e20
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29e14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29e08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29dfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x29df0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x280(%rbp), %rdi
callq 0xf058
leaq -0x2a0(%rbp), %rdi
callq 0xf058
leaq -0x2c0(%rbp), %rdi
callq 0xf058
leaq -0x2e0(%rbp), %rdi
callq 0xf058
leaq -0x368(%rbp), %rdi
callq 0xf058
leaq -0x300(%rbp), %rdi
callq 0xf058
leaq -0x320(%rbp), %rdi
callq 0xf058
leaq -0x340(%rbp), %rdi
callq 0xf058
leaq -0x341(%rbp), %rdi
callq 0xe850
jmp 0x2a198
jmp 0x29e57
callq 0x380a0
testb $0x1, %al
jne 0x29b9e
movq -0x488(%rbp), %rdi
movl -0x54(%rbp), %esi
callq 0x383a0
callq 0x383c0
callq 0x30ae0
movq %rax, %rdi
callq 0x310d0
movq %rax, %rdi
callq 0x24890
movb $0x1, 0x97c1d(%rip)     # 0xc1ab1
movl $0x1, -0x4(%rbp)
jmp 0x2a18c
jmp 0x29ea2
jmp 0x29ea4
movl -0x54(%rbp), %edi
callq 0xf020
movl %eax, -0x370(%rbp)
xorl %eax, %eax
cmpl $-0x1, -0x370(%rbp)
movb %al, -0x4c1(%rbp)
jne 0x29ed4
callq 0xe090
cmpl $0x4, (%rax)
sete %al
movb %al, -0x4c1(%rbp)
movb -0x4c1(%rbp), %al
testb $0x1, %al
jne 0x29ea4
cmpl $-0x1, -0x370(%rbp)
jne 0x2a156
leaq -0x451(%rbp), %rdi
movq %rdi, -0x4d0(%rbp)
callq 0xee90
movq -0x4d0(%rbp), %rdx
leaq 0x615b3(%rip), %rsi     # 0x8b4bf
leaq -0x450(%rbp), %rdi
callq 0x30890
jmp 0x29f1a
leaq 0x614ff(%rip), %rdx     # 0x8b420
leaq -0x430(%rbp), %rdi
leaq -0x450(%rbp), %rsi
callq 0x30980
jmp 0x29f36
leaq 0x61596(%rip), %rdx     # 0x8b4d3
leaq -0x410(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x30980
jmp 0x29f52
movl $0x365, -0x47c(%rbp)    # imm = 0x365
leaq -0x478(%rbp), %rdi
leaq -0x47c(%rbp), %rsi
callq 0x35870
jmp 0x29f71
leaq -0x3f0(%rbp), %rdi
leaq -0x410(%rbp), %rsi
leaq -0x478(%rbp), %rdx
callq 0x357a0
jmp 0x29f8d
leaq 0x6083e(%rip), %rdx     # 0x8a7d2
leaq -0x3d0(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x30980
jmp 0x29fa9
leaq 0x61711(%rip), %rdx     # 0x8b6c1
leaq -0x3b0(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
callq 0x30980
jmp 0x29fc5
leaq 0x61724(%rip), %rdx     # 0x8b6f0
leaq -0x390(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x30980
jmp 0x29fe1
leaq -0x390(%rbp), %rdi
callq 0x27a00
jmp 0x29fef
leaq -0x390(%rbp), %rdi
callq 0xf058
leaq -0x3b0(%rbp), %rdi
callq 0xf058
leaq -0x3d0(%rbp), %rdi
callq 0xf058
leaq -0x3f0(%rbp), %rdi
callq 0xf058
leaq -0x478(%rbp), %rdi
callq 0xf058
leaq -0x410(%rbp), %rdi
callq 0xf058
leaq -0x430(%rbp), %rdi
callq 0xf058
leaq -0x450(%rbp), %rdi
callq 0xf058
leaq -0x451(%rbp), %rdi
callq 0xe850
jmp 0x2a156
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2a148
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2a13c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2a130
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2a124
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2a118
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2a10c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2a100
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0x2a0f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x390(%rbp), %rdi
callq 0xf058
leaq -0x3b0(%rbp), %rdi
callq 0xf058
leaq -0x3d0(%rbp), %rdi
callq 0xf058
leaq -0x3f0(%rbp), %rdi
callq 0xf058
leaq -0x478(%rbp), %rdi
callq 0xf058
leaq -0x410(%rbp), %rdi
callq 0xf058
leaq -0x430(%rbp), %rdi
callq 0xf058
leaq -0x450(%rbp), %rdi
callq 0xf058
leaq -0x451(%rbp), %rdi
callq 0xe850
jmp 0x2a198
jmp 0x2a158
callq 0x380a0
testb $0x1, %al
jne 0x29ea2
movq -0x488(%rbp), %rdi
movl -0x58(%rbp), %esi
callq 0x380b0
movq -0x488(%rbp), %rdi
movl $0x1, %esi
callq 0x383d0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x4d0, %rsp            # imm = 0x4D0
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0xee80
nopw %cs:(%rax,%rax)