// File: /workspace/github_cpp_makefile_star2_O2/halfflat[P]tinyopt/test/googletest/googletest/src/gtest.cc
// Function: testing::internal::TypeParameterizedTestSuiteRegistry::CheckForInstantiations()
void TypeParameterizedTestSuiteRegistry::CheckForInstantiations() {
  const auto& ignored = *GetIgnoredParameterizedTestSuites();
  for (const auto& testcase : suites_) {
    if (testcase.second.instantiated) continue;
    if (ignored.find(testcase.first) != ignored.end()) continue;

    std::string message =
        "Type parameterized test suite " + testcase.first +
        " is defined via REGISTER_TYPED_TEST_SUITE_P, but never instantiated "
        "via INSTANTIATE_TYPED_TEST_SUITE_P. None of the test cases will run."
        "\n\n"
        "Ideally, TYPED_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.)"
        "\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(" +
        testcase.first + ");";

    std::string full_name =
        "UninstantiatedTypeParameterizedTestSuite<" + testcase.first + ">";
    RegisterTest(  //
        "GoogleTestVerification", full_name.c_str(),
        nullptr,  // No type parameter.
        nullptr,  // No value parameter.
        testcase.second.code_location.file.c_str(),
        testcase.second.code_location.line, [message, testcase] {
          return new FailureTest(testcase.second.code_location, message,
                                 kErrorOnUninstantiatedTypeParameterizedTest);
        });
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1a8, %rsp            # imm = 0x1A8
movq %rdi, %rbp
callq 0x3ba51
movq %rax, %r12
movq 0x18(%rbp), %r15
addq $0x8, %rbp
movq %rax, %r13
addq $0x8, %r13
movq %rbp, 0x38(%rsp)
movq %r13, 0x30(%rsp)
movq %rax, 0x28(%rsp)
cmpq %rbp, %r15
je 0x3c1cc
cmpb $0x0, 0x68(%r15)
jne 0x3c1bc
leaq 0x20(%r15), %r14
movq %r12, %rdi
movq %r14, %rsi
callq 0x52b54
cmpq %r13, %rax
jne 0x3c1bc
leaq 0x40(%rsp), %rbx
movq %rbx, %rdi
leaq 0x1f8ad(%rip), %rsi     # 0x5b8ac
movq %r14, %rdx
callq 0x1d2d9
leaq 0x60(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
leaq 0x1f8b2(%rip), %rdx     # 0x5b8cb
callq 0x4c05c
leaq 0x138(%rsp), %r12
movq %r12, %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x1dd09
leaq 0xa8(%rsp), %rdi
movq %r12, %rsi
leaq 0x1f7ff(%rip), %rdx     # 0x5b845
callq 0x4c05c
movq %r12, %rdi
callq 0xdbe8
leaq 0x60(%rsp), %rdi
callq 0xdbe8
leaq 0x40(%rsp), %rdi
callq 0xdbe8
movq %r12, %rdi
leaq 0x1fa62(%rip), %rsi     # 0x5bad3
movq %r14, %rdx
callq 0x1d2d9
leaq 0x88(%rsp), %rdi
movq %r12, %rsi
leaq 0x204c6(%rip), %rdx     # 0x5c551
callq 0x4c05c
movq %r12, %rdi
callq 0xdbe8
movq 0x88(%rsp), %rbp
movq 0x40(%r15), %r13
movl 0x60(%r15), %r12d
leaq 0xc8(%rsp), %rdi
leaq 0xa8(%rsp), %rsi
callq 0xd880
leaq 0xe8(%rsp), %rdi
movq %r14, %rsi
callq 0x4cbd2
leaq 0x40(%rsp), %r14
movq %r14, %rdi
movq %r13, %rsi
leaq 0x27(%rsp), %rdx
callq 0x1337a
leaq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0xd880
movl %r12d, 0x80(%rsp)
pushq $0x78
popq %rdi
callq 0xd570
movq %rax, %r14
leaq 0x138(%rsp), %rbx
movq %rbx, %rdi
leaq 0xc8(%rsp), %rsi
callq 0x4acf0
leaq 0x60(%rsp), %r12
leaq 0x475d2(%rip), %rax     # 0x836f8
movq %rax, (%r14)
movq %r14, %rdi
addq $0x8, %rdi
movb $0x1, %r13b
movq %rbx, %rsi
callq 0x4acf0
xorl %r13d, %r13d
movq %r14, 0x10(%rsp)
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
leaq 0x1f71d(%rip), %rdi     # 0x5b86e
movq %rbp, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
movq %r12, %r8
leaq 0x488de(%rip), %r9      # 0x84a40
callq 0x409a1
leaq 0x138(%rsp), %rdi
callq 0x3c2b2
movq %r12, %rdi
callq 0xdbe8
leaq 0x40(%rsp), %rdi
callq 0xdbe8
leaq 0xc8(%rsp), %rdi
callq 0x3c2b2
leaq 0x88(%rsp), %rdi
callq 0xdbe8
leaq 0xa8(%rsp), %rdi
callq 0xdbe8
movq 0x28(%rsp), %r12
movq 0x38(%rsp), %rbp
movq 0x30(%rsp), %r13
movq %r15, %rdi
callq 0xd3a0
movq %rax, %r15
jmp 0x3bfc4
addq $0x1a8, %rsp            # imm = 0x1A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x3c290
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
jmp 0x3c298
movq %rax, %rbx
jmp 0x3c29d
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
callq 0xdbe8
jmp 0x3c213
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0xdbe8
jmp 0x3c222
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
jmp 0x3c2a5
movq %rax, %rbx
jmp 0x3c264
movq %rax, %rbx
jmp 0x3c26f
movq %rax, %rbx
jmp 0x3c279
movq %rax, %rbx
jmp 0x3c283
movq %rax, %rbx
leaq 0xc8(%rsp), %rdi
callq 0xdbe8
jmp 0x3c290
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
callq 0x3c2b2
testb %r13b, %r13b
je 0x3c26f
pushq $0x78
popq %rsi
movq %r14, %rdi
callq 0xd5a0
leaq 0x60(%rsp), %rdi
callq 0xdbe8
leaq 0x40(%rsp), %rdi
callq 0xdbe8
leaq 0xc8(%rsp), %rdi
callq 0x3c2b2
leaq 0x88(%rsp), %rdi
callq 0xdbe8
leaq 0xa8(%rsp), %rdi
callq 0xdbe8
movq %rbx, %rdi
callq 0xdaa0