// File: /workspace/github_cpp_makefile_star2_O2/WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.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 0x26624(%rip), %rdi     # 0x2e5b0
testq %rdi, %rdi
je 0x810b
pushq $0x3a
popq %rsi
callq 0x6190
testq %rax, %rax
je 0x813b
movq %rax, %r14
incq %r14
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rdx
movq %r14, %rsi
callq 0x1543a
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x154a8
leaq 0x8(%rsp), %rdi
callq 0x6a28
movq 0x28(%rsp), %rax
cmpb $0x2f, (%rax)
je 0x809b
callq 0x7a12
movq 0x266cf(%rip), %rax     # 0x2e6c0
movq 0x10(%rax), %rsi
leaq 0x68(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1543a
leaq 0x48(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x154a8
leaq 0xa8(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %r14, %rsi
callq 0x1543a
leaq 0x88(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0x154a8
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x88(%rsp), %rdx
callq 0x82e8
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x6230
leaq 0x8(%rsp), %rdi
callq 0x6a28
leaq 0x88(%rsp), %rdi
callq 0x6a28
leaq 0xa8(%rsp), %rdi
callq 0x6a28
leaq 0x48(%rsp), %rdi
callq 0x6a28
leaq 0x68(%rsp), %rdi
callq 0x6a28
movq 0x30(%rsp), %rax
testq %rax, %rax
je 0x8124
movq 0x28(%rsp), %rcx
cmpb $0x2f, -0x1(%rcx,%rax)
jne 0x8124
leaq 0x48(%rsp), %rdi
callq 0x7e26
leaq 0x68(%rsp), %rdi
callq 0x7f12
movq 0x68(%rsp), %rcx
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0x48(%rsp), %rdx
callq 0x83ca
leaq 0x68(%rsp), %rdi
callq 0x6a28
leaq 0x48(%rsp), %rdi
callq 0x6a28
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x66e0
leaq 0x8(%rsp), %rdi
callq 0x6a28
jmp 0x8131
leaq 0x16993(%rip), %rsi     # 0x1eaa5
leaq 0x28(%rsp), %rdx
movq %rbx, %rdi
callq 0x1543a
jmp 0x81ed
leaq 0x28(%rsp), %rsi
movq %rbx, %rdi
callq 0x66e0
leaq 0x28(%rsp), %rdi
jmp 0x81e8
callq 0x7a12
movq 0x26579(%rip), %rax     # 0x2e6c0
movq 0x10(%rax), %rsi
leaq 0x48(%rsp), %rdi
leaq 0xa8(%rsp), %rdx
callq 0x1543a
leaq 0x8(%rsp), %rdi
leaq 0x48(%rsp), %rsi
callq 0x154a8
leaq 0x152ed(%rip), %rsi     # 0x1d460
leaq 0x88(%rsp), %rdi
leaq 0x6(%rsp), %rdx
callq 0x1543a
leaq 0x68(%rsp), %rdi
leaq 0x88(%rsp), %rsi
callq 0x154a8
leaq 0x28(%rsp), %rdi
leaq 0x8(%rsp), %rsi
leaq 0x68(%rsp), %rdx
callq 0x82e8
leaq 0x28(%rsp), %rsi
movq %rbx, %rdi
callq 0x66e0
leaq 0x28(%rsp), %rdi
callq 0x6a28
leaq 0x68(%rsp), %rdi
callq 0x6a28
leaq 0x88(%rsp), %rdi
callq 0x6a28
leaq 0x8(%rsp), %rdi
callq 0x6a28
leaq 0x48(%rsp), %rdi
callq 0x6a28
movq %rbx, %rax
addq $0xc8, %rsp
popq %rbx
popq %r14
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0x826d
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x6a28
jmp 0x8217
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x826d
jmp 0x82c3
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x6a28
jmp 0x8235
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x6a28
jmp 0x8247
movq %rax, %rbx
leaq 0xa8(%rsp), %rdi
callq 0x6a28
jmp 0x8259
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x6a28
jmp 0x8268
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x6a28
jmp 0x82c6
jmp 0x82c3
jmp 0x82c3
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x6a28
jmp 0x828a
movq %rax, %rbx
leaq 0x68(%rsp), %rdi
callq 0x6a28
jmp 0x8299
movq %rax, %rbx
leaq 0x88(%rsp), %rdi
callq 0x6a28
jmp 0x82ab
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x6a28
jmp 0x82ba
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
jmp 0x82cb
jmp 0x82e2
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x6a28
movq %rbx, %rdi
callq 0x6900
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
jmp 0x82cb
movq %rax, %rbx
jmp 0x82d0
nop