// File: /workspace/github_cpp_makefile_star2_O2/halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::UnitTestOptions::GetAbsolutePathToOutputFile[abi:cxx11]()
std::string UnitTestOptions::GetAbsolutePathToOutputFile() {
  std::string s = GTEST_FLAG_GET(output);
  const char* const gtest_output_flag = s.c_str();

  std::string format = GetOutputFormat();
  if (format.empty()) format = std::string(kDefaultOutputFormat);

  const char* const colon = strchr(gtest_output_flag, ':');
  if (colon == nullptr)
    return internal::FilePath::MakeFileName(
               internal::FilePath(
                   UnitTest::GetInstance()->original_working_dir()),
               internal::FilePath(kDefaultOutputFile), 0, format.c_str())
        .string();

  internal::FilePath output_name(colon + 1);
  if (!output_name.IsAbsolutePath())
    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 %r15
pushq %r14
pushq %rbx
subq $0x110, %rsp            # imm = 0x110
movq %rdi, %rbx
leaq 0x4852a(%rip), %rsi     # 0x84930
leaq 0xf0(%rsp), %r14
movq %r14, %rdi
callq 0xd880
movq (%r14), %r14
leaq 0xb0(%rsp), %rdi
callq 0x3c36c
cmpq $0x0, 0xb8(%rsp)
jne 0x3c464
leaq 0x1da24(%rip), %rsi     # 0x59e5c
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x1337a
leaq 0xb0(%rsp), %rdi
leaq 0x30(%rsp), %r15
movq %r15, %rsi
callq 0xd730
movq %r15, %rdi
callq 0xdbe8
pushq $0x3a
popq %rsi
movq %r14, %rdi
callq 0xd1f0
testq %rax, %rax
je 0x3c5f8
movq %rax, %r14
incq %r14
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rdx
movq %r14, %rsi
callq 0x1337a
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x4c43e
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x30(%rsp), %rdi
callq 0x38eb2
testb %al, %al
jne 0x3c571
callq 0x3b634
movq 0x48549(%rip), %rax     # 0x84a10
movq 0x10(%rax), %rsi
leaq 0x70(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x1337a
leaq 0x50(%rsp), %rdi
leaq 0x70(%rsp), %rsi
callq 0x4c43e
leaq 0xd0(%rsp), %rdi
leaq 0xf(%rsp), %rdx
movq %r14, %rsi
callq 0x1337a
leaq 0x90(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0x4c43e
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x90(%rsp), %rdx
callq 0x38ce0
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0xd2e0
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x90(%rsp), %rdi
callq 0xdbe8
leaq 0xd0(%rsp), %rdi
callq 0xdbe8
leaq 0x50(%rsp), %rdi
callq 0xdbe8
leaq 0x70(%rsp), %rdi
callq 0xdbe8
movq 0x38(%rsp), %rax
testq %rax, %rax
je 0x3c5e1
movq 0x30(%rsp), %rcx
cmpb $0x2f, -0x1(%rcx,%rax)
jne 0x3c5e1
leaq 0x50(%rsp), %rdi
callq 0x3c2c8
leaq 0x70(%rsp), %rdi
callq 0x3c36c
movq 0x70(%rsp), %rcx
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x38ec0
leaq 0x70(%rsp), %rdi
callq 0xdbe8
leaq 0x50(%rsp), %rdi
callq 0xdbe8
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0xd880
leaq 0x10(%rsp), %rdi
callq 0xdbe8
jmp 0x3c5ee
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xd880
leaq 0x30(%rsp), %rdi
jmp 0x3c6af
callq 0x3b634
movq 0x4840c(%rip), %rax     # 0x84a10
movq 0x10(%rax), %rsi
leaq 0x50(%rsp), %rdi
leaq 0xd0(%rsp), %rdx
callq 0x1337a
leaq 0x10(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x4c43e
leaq 0x1d7d8(%rip), %rsi     # 0x59e08
leaq 0x90(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x1337a
leaq 0x70(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x4c43e
movq 0xb0(%rsp), %r8
leaq 0x30(%rsp), %rdi
leaq 0x10(%rsp), %rsi
leaq 0x70(%rsp), %rdx
xorl %ecx, %ecx
callq 0x38afc
leaq 0x30(%rsp), %rsi
movq %rbx, %rdi
callq 0xd880
leaq 0x30(%rsp), %rdi
callq 0xdbe8
leaq 0x70(%rsp), %rdi
callq 0xdbe8
leaq 0x90(%rsp), %rdi
callq 0xdbe8
leaq 0x10(%rsp), %rdi
callq 0xdbe8
leaq 0x50(%rsp), %rdi
callq 0xdbe8
leaq 0xb0(%rsp), %rdi
callq 0xdbe8
leaq 0xf0(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbx
popq %r14
popq %r15
retq
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x3c750
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdbe8
jmp 0x3c6fa
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
jmp 0x3c750
jmp 0x3c7aa
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdbe8
jmp 0x3c718
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xdbe8
jmp 0x3c72a
movq %rax, %rbx
leaq 0xd0(%rsp), %rdi
callq 0xdbe8
jmp 0x3c73c
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
callq 0xdbe8
jmp 0x3c74b
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdbe8
jmp 0x3c7ad
jmp 0x3c7aa
jmp 0x3c7aa
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xdbe8
jmp 0x3c76d
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdbe8
jmp 0x3c77c
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xdbe8
jmp 0x3c78e
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0xdbe8
jmp 0x3c79d
movq %rax, %rbx
leaq 0x50(%rsp), %rdi
jmp 0x3c7b2
jmp 0x3c7c3
jmp 0x3c7c3
jmp 0x3c7c3
movq %rax, %rbx
leaq 0x30(%rsp), %rdi
callq 0xdbe8
jmp 0x3c7c6
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
jmp 0x3c7b2
movq %rax, %rbx
leaq 0xb0(%rsp), %rdi
callq 0xdbe8
leaq 0xf0(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
callq 0xdaa0
movq %rax, %rbx
jmp 0x3c7d3
nop