// File: /workspace/github_c_makefile_star2_O2/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::internal::UnitTestOptions::GetAbsolutePathToOutputFile[abi:cxx11]()
std::string UnitTestOptions::GetAbsolutePathToOutputFile() {
  const char* const gtest_output_flag = GTEST_FLAG(output).c_str();
  if (gtest_output_flag == NULL)
    return "";

  const char* const colon = strchr(gtest_output_flag, ':');
  if (colon == NULL)
    return internal::FilePath::ConcatPaths(
        internal::FilePath(
            UnitTest::GetInstance()->original_working_dir()),
        internal::FilePath(kDefaultOutputFile)).string();

  internal::FilePath output_name(colon + 1);
  if (!output_name.IsAbsolutePath())
    // TODO(wan@google.com): on Windows \some\path is not an absolute
    // path (as its meaning depends on the current drive), yet the
    // following logic for turning it into an absolute path is wrong.
    // Fix it.
    output_name = internal::FilePath::ConcatPaths(
        internal::FilePath(UnitTest::GetInstance()->original_working_dir()),
        internal::FilePath(colon + 1));

  if (!output_name.IsDirectory())
    return output_name.string();

  internal::FilePath result(internal::FilePath::GenerateUniqueFileName(
      output_name, internal::GetCurrentExecutableName(),
      GetOutputFormat().c_str()));
  return result.string();
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xc8, %rsp
movq %rdi, %rbx
movq 0x58bb2(%rip), %rdi     # 0x69768
testq %rdi, %rdi
je 0x10d35
pushq $0x3a
popq %rsi
callq 0xd230
testq %rax, %rax
je 0x10d65
movq %rax, %r14
incq %r14
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %r14, %rsi
callq 0x1f4d6
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1f4a6
leaq 0x8(%rsp), %rdi
callq 0xdd68
movq 0x28(%rsp), %rax
cmpb $0x2f, (%rax)
je 0x10cc5
callq 0x10622
movq 0x58c75(%rip), %rax     # 0x69890
movq 0x10(%rax), %rsi
leaq 0x68(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1f4d6
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x1f4a6
leaq 0xa8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %r14, %rsi
callq 0x1f4d6
leaq 0x88(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x1f4a6
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x10f12
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0xd310
leaq 0x8(%rsp), %rdi
callq 0xdd68
leaq 0x88(%rsp), %rdi
callq 0xdd68
leaq 0xa8(%rsp), %rdi
callq 0xdd68
leaq 0x48(%rsp), %rdi
callq 0xdd68
leaq 0x68(%rsp), %rdi
callq 0xdd68
movq 0x30(%rsp), %rax
testq %rax, %rax
je 0x10d4e
movq 0x28(%rsp), %rcx
cmpb $0x2f, -0x1(%rcx,%rax)
jne 0x10d4e
leaq 0x48(%rsp), %rdi
callq 0x10a4f
leaq 0x68(%rsp), %rdi
callq 0x10b3c
movq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x10ff4
leaq 0x68(%rsp), %rdi
callq 0xdd68
leaq 0x48(%rsp), %rdi
callq 0xdd68
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0xd920
leaq 0x8(%rsp), %rdi
callq 0xdd68
jmp 0x10d5b
leaq 0x3916b(%rip), %rsi     # 0x49ea7
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
callq 0x1f4d6
jmp 0x10e17
leaq 0x28(%rsp), %rsi
movq %rbx, %rdi
callq 0xd920
leaq 0x28(%rsp), %rdi
jmp 0x10e12
callq 0x10622
movq 0x58b1f(%rip), %rax     # 0x69890
movq 0x10(%rax), %rsi
leaq 0x48(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
callq 0x1f4d6
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x1f4a6
leaq 0x32433(%rip), %rsi     # 0x431d0
leaq 0x88(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1f4d6
leaq 0x68(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x1f4a6
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x10f12
leaq 0x28(%rsp), %rsi
movq %rbx, %rdi
callq 0xd920
leaq 0x28(%rsp), %rdi
callq 0xdd68
leaq 0x68(%rsp), %rdi
callq 0xdd68
leaq 0x88(%rsp), %rdi
callq 0xdd68
leaq 0x8(%rsp), %rdi
callq 0xdd68
leaq 0x48(%rsp), %rdi
callq 0xdd68
movq %rbx, %rax
addq $0xc8, %rsp
popq %rbx
popq %r14
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0x10e97
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd68
jmp 0x10e41
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x10e97
jmp 0x10eed
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xdd68
jmp 0x10e5f
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0xdd68
jmp 0x10e71
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0xdd68
jmp 0x10e83
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xdd68
jmp 0x10e92
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd68
jmp 0x10ef0
jmp 0x10eed
jmp 0x10eed
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xdd68
jmp 0x10eb4
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0xdd68
jmp 0x10ec3
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0xdd68
jmp 0x10ed5
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0xdd68
jmp 0x10ee4
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x10ef5
jmp 0x10f0c
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xdd68
movq %rbx, %rdi
callq 0xdbf0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0x10ef5
movq %rax, %rbx
jmp 0x10efa
nop