// File: /workspace/github_cpp_makefile_star2_O2/halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::InsertSyntheticTestCase(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, testing::internal::CodeLocation, bool)
void InsertSyntheticTestCase(const std::string& name, CodeLocation location,
                             bool has_test_p) {
  const auto& ignored = *GetIgnoredParameterizedTestSuites();
  if (ignored.find(name) != ignored.end()) return;

  const char kMissingInstantiation[] =  //
      " is defined via TEST_P, but never instantiated. None of the test "
      "cases "
      "will run. Either no INSTANTIATE_TEST_SUITE_P is provided or the only "
      "ones provided expand to nothing."
      "\n\n"
      "Ideally, TEST_P definitions should only ever be included as part of "
      "binaries that intend to use them. (As opposed to, for example, being "
      "placed in a library that may be linked in to get other utilities.)";

  const char kMissingTestCase[] =  //
      " is instantiated via INSTANTIATE_TEST_SUITE_P, but no tests are "
      "defined via TEST_P . No test cases will run."
      "\n\n"
      "Ideally, INSTANTIATE_TEST_SUITE_P should only ever be invoked from "
      "code that always depend on code that provides TEST_P. Failing to do "
      "so is often an indication of dead code, e.g. the last TEST_P was "
      "removed but the rest got left behind.";

  std::string message =
      "Parameterized test suite " + name +
      (has_test_p ? kMissingInstantiation : kMissingTestCase) +
      "\n\n"
      "To suppress this error for this test suite, insert the following line "
      "(in a non-header) in the namespace it is defined in:"
      "\n\n"
      "GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(" +
      name + ");";

  std::string full_name = "UninstantiatedParameterizedTestSuite<" + name + ">";
  RegisterTest(  //
      "GoogleTestVerification", full_name.c_str(),
      nullptr,  // No type parameter.
      nullptr,  // No value parameter.
      location.file.c_str(), location.line, [message, location] {
        return new FailureTest(location, message,
                               kErrorOnUninstantiatedParameterizedTest);
      });
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x428, %rsp            # imm = 0x428
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r14
callq 0x3ba51
movq %rax, %r15
movq %rax, %rdi
movq %r14, %rsi
callq 0x52b54
addq $0x8, %r15
cmpq %r15, %rax
jne 0x3bd12
leaq 0x21d3d(%rip), %rsi     # 0x5d840
leaq 0x2a0(%rsp), %r15
movl $0x17a, %edx            # imm = 0x17A
movq %r15, %rdi
callq 0xd460
leaq 0x21ea1(%rip), %rsi     # 0x5d9c0
leaq 0x140(%rsp), %r12
movl $0x15c, %edx            # imm = 0x15C
movq %r12, %rdi
callq 0xd460
leaq 0x1fcf0(%rip), %rsi     # 0x5b82b
leaq 0x70(%rsp), %r13
movq %r13, %rdi
movq %r14, %rdx
callq 0x1d2d9
testb %bpl, %bpl
cmovneq %r15, %r12
leaq 0x28(%rsp), %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x4c05c
leaq 0x1febd(%rip), %rdx     # 0x5ba26
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0x4c05c
leaq 0x90(%rsp), %rdi
leaq 0x48(%rsp), %rsi
movq %r14, %rdx
callq 0x1dd09
leaq 0x1fcb1(%rip), %rdx     # 0x5b845
leaq 0xd8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x4c05c
leaq 0x90(%rsp), %rdi
callq 0xdbe8
leaq 0x48(%rsp), %rdi
callq 0xdbe8
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0x70(%rsp), %rdi
callq 0xdbe8
leaq 0x1fc6d(%rip), %rsi     # 0x5b848
leaq 0x90(%rsp), %rdi
movq %r14, %rdx
callq 0x1d2d9
leaq 0x2095f(%rip), %rdx     # 0x5c551
leaq 0x70(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x4c05c
leaq 0x90(%rsp), %rdi
callq 0xdbe8
movq 0x70(%rsp), %r14
movq (%rbx), %r15
movl 0x20(%rbx), %ebp
leaq 0xf8(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0xd880
leaq 0x118(%rsp), %rdi
movq %rbx, %rsi
callq 0x4cba4
leaq 0x28(%rsp), %rdi
leaq 0x27(%rsp), %rdx
movq %r15, %rsi
callq 0x1337a
leaq 0x48(%rsp), %rdi
leaq 0x28(%rsp), %rsi
callq 0xd880
movl %ebp, 0x68(%rsp)
pushq $0x50
popq %rdi
callq 0xd570
movq %rax, %rbx
leaq 0x90(%rsp), %r15
leaq 0xf8(%rsp), %rsi
movq %r15, %rdi
callq 0x4aace
leaq 0x479d0(%rip), %rax     # 0x83660
movq %rax, (%rbx)
movq %rbx, %rdi
addq $0x8, %rdi
movq %r15, %rsi
callq 0x4aace
movq %rbx, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
leaq 0x1fbb9(%rip), %rdi     # 0x5b86e
leaq 0x48d84(%rip), %r9      # 0x84a40
leaq 0x48(%rsp), %r8
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x409a1
leaq 0x90(%rsp), %rdi
callq 0x3bde6
leaq 0x48(%rsp), %rdi
callq 0xdbe8
leaq 0x28(%rsp), %rdi
callq 0xdbe8
leaq 0xf8(%rsp), %rdi
callq 0x3bde6
leaq 0x70(%rsp), %rdi
callq 0xdbe8
leaq 0xd8(%rsp), %rdi
callq 0xdbe8
addq $0x428, %rsp            # imm = 0x428
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x3bde6
jmp 0x3bd39
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xdbe8
jmp 0x3bd48
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xdbe8
jmp 0x3bd57
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0x3bde6
jmp 0x3bd7b
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
callq 0xdbe8
jmp 0x3bd7b
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdbe8
leaq 0xd8(%rsp), %rdi
jmp 0x3bdd9
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
jmp 0x3bd80
movq %rax, %rbx
jmp 0x3bd85
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0xdbe8
jmp 0x3bdb6
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xdbe8
jmp 0x3bdc5
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0xdbe8
jmp 0x3bdd4
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
callq 0xdaa0