// File: /workspace/github_c_makefile_star2_O2/deplinenoise[P]tundra/unittest/googletest/googletest/src/gtest.cc
// Function: testing::Test::HasSameFixtureClass()
bool Test::HasSameFixtureClass() {
  internal::UnitTestImpl* const impl = internal::GetUnitTestImpl();
  const TestCase* const test_case = impl->current_test_case();

  // Info about the first test in the current test case.
  const TestInfo* const first_test_info = test_case->test_info_list()[0];
  const internal::TypeId first_fixture_id = first_test_info->fixture_class_id_;
  const char* const first_test_name = first_test_info->name();

  // Info about the current test.
  const TestInfo* const this_test_info = impl->current_test_info();
  const internal::TypeId this_fixture_id = this_test_info->fixture_class_id_;
  const char* const this_test_name = this_test_info->name();

  if (this_fixture_id != first_fixture_id) {
    // Is the first test defined using TEST?
    const bool first_is_TEST = first_fixture_id == internal::GetTestTypeId();
    // Is this test defined using TEST?
    const bool this_is_TEST = this_fixture_id == internal::GetTestTypeId();

    if (first_is_TEST || this_is_TEST) {
      // Both TEST and TEST_F appear in same test case, which is incorrect.
      // Tell the user how to fix this.

      // Gets the name of the TEST and the name of the TEST_F.  Note
      // that first_is_TEST and this_is_TEST cannot both be true, as
      // the fixture IDs are different for the two tests.
      const char* const TEST_name =
          first_is_TEST ? first_test_name : this_test_name;
      const char* const TEST_F_name =
          first_is_TEST ? this_test_name : first_test_name;

      ADD_FAILURE()
          << "All tests in the same test case must use the same test fixture\n"
          << "class, so mixing TEST_F and TEST in the same test case is\n"
          << "illegal.  In test case " << this_test_info->test_case_name()
          << ",\n"
          << "test " << TEST_F_name << " is defined using TEST_F but\n"
          << "test " << TEST_name << " is defined using TEST.  You probably\n"
          << "want to change the TEST to TEST_F or move it to another test\n"
          << "case.";
    } else {
      // Two fixture classes with the same name appear in two different
      // namespaces, which is not allowed. Tell the user how to fix this.
      ADD_FAILURE()
          << "All tests in the same test case must use the same test fixture\n"
          << "class.  However, in test case "
          << this_test_info->test_case_name() << ",\n"
          << "you defined test " << first_test_name
          << " and test " << this_test_name << "\n"
          << "using two different test fixture classes.  This can happen if\n"
          << "the two classes are from different namespaces or translation\n"
          << "units and have the same name.  You should probably rename one\n"
          << "of the classes to put the tests into different test cases.";
    }
    return false;
  }

  return true;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x38, %rsp
callq 0x1f568
movq 0x108(%rax), %rcx
movq 0x30(%rcx), %rcx
movq (%rcx), %rcx
movq 0x78(%rcx), %r14
movq 0x20(%rcx), %rcx
movq %rcx, 0x28(%rsp)
movq 0x110(%rax), %r12
movq 0x78(%r12), %r15
movq 0x20(%r12), %rax
movq %rax, 0x20(%rsp)
cmpq %r14, %r15
je 0x15308
leaq 0x54887(%rip), %rdx     # 0x69930
cmpq %rdx, %r14
je 0x151d3
cmpq %rdx, %r15
je 0x151d3
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x11c8e
movq (%rbx), %rbx
addq $0x10, %rbx
leaq 0x2f1d4(%rip), %rsi     # 0x442aa
movq %rbx, %rdi
callq 0xd5e0
leaq 0x2f2e1(%rip), %rsi     # 0x443c6
movq %rbx, %rdi
callq 0xd5e0
movq (%r12), %rax
leaq 0x18(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x8(%rsp), %rdi
callq 0x1fab0
leaq 0x34146(%rip), %rsi     # 0x49250
movq %rax, %rdi
callq 0x1fb0c
leaq 0x2f2cc(%rip), %rsi     # 0x443e5
movq %rax, %rdi
callq 0x2073c
leaq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x1fab0
leaq 0x2f2c2(%rip), %rsi     # 0x443f7
movq %rax, %rdi
callq 0x1f582
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x1fab0
leaq 0x2f737(%rip), %rsi     # 0x44888
movq %rax, %rdi
callq 0x1f5ae
leaq 0x2f2a2(%rip), %rsi     # 0x44402
movq %rax, %rdi
callq 0x209d4
leaq 0x2f2d2(%rip), %rsi     # 0x44441
movq %rax, %rdi
callq 0x209a8
leaq 0x2f301(%rip), %rsi     # 0x4447f
movq %rax, %rdi
callq 0x209d4
leaq 0x2f331(%rip), %rsi     # 0x444be
movq %rax, %rdi
callq 0x20950
movq %rax, %rbx
leaq 0x2ee32(%rip), %rdx     # 0x43fd1
leaq 0x2f0fd(%rip), %r8      # 0x442a3
movq %rsp, %rdi
pushq $0x1
popq %rsi
movl $0x908, %ecx            # imm = 0x908
callq 0x104f8
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x10576
movq %rsp, %rdi
callq 0x10558
leaq 0x8(%rsp), %rdi
jmp 0x15303
cmpq %rdx, %r14
movq %rax, %rdx
cmoveq %rcx, %rdx
movq %rdx, 0x8(%rsp)
cmoveq %rax, %rcx
movq %rcx, 0x18(%rsp)
movq %rsp, %rbx
movq %rbx, %rdi
callq 0x11c8e
movq (%rbx), %rbx
addq $0x10, %rbx
leaq 0x2f0a6(%rip), %rsi     # 0x442aa
movq %rbx, %rdi
callq 0xd5e0
leaq 0x2f0d7(%rip), %rsi     # 0x442ea
movq %rbx, %rdi
callq 0xd5e0
movq (%rsp), %rdi
addq $0x10, %rdi
leaq 0x2f0fb(%rip), %rsi     # 0x44325
callq 0xd5e0
movq (%r12), %rax
leaq 0x30(%rsp), %rsi
movq %rax, (%rsi)
movq %rsp, %rdi
callq 0x1fab0
leaq 0x34006(%rip), %rsi     # 0x49250
movq %rax, %rdi
callq 0x1fb0c
leaq 0x2f198(%rip), %rsi     # 0x443f1
movq %rax, %rdi
callq 0x20966
leaq 0x18(%rsp), %rsi
movq %rax, %rdi
callq 0x1fab0
leaq 0x2f0c8(%rip), %rsi     # 0x4433d
movq %rax, %rdi
callq 0x2097c
leaq 0x2f16d(%rip), %rsi     # 0x443f1
movq %rax, %rdi
callq 0x20966
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x1fab0
leaq 0x2f0bb(%rip), %rsi     # 0x4435b
movq %rax, %rdi
callq 0x20992
leaq 0x2f0d3(%rip), %rsi     # 0x44382
movq %rax, %rdi
callq 0x209a8
leaq 0x2f102(%rip), %rsi     # 0x443c0
movq %rax, %rdi
callq 0x20966
movq %rax, %rbx
leaq 0x2ed01(%rip), %rdx     # 0x43fd1
leaq 0x2efcc(%rip), %r8      # 0x442a3
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rsi
movl $0x8fc, %ecx            # imm = 0x8FC
callq 0x104f8
leaq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x10576
leaq 0x10(%rsp), %rdi
callq 0x10558
movq %rsp, %rdi
callq 0x1f8e0
cmpq %r14, %r15
sete %al
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq %rsp, %rdi
callq 0x10558
jmp 0x15349
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x10558
jmp 0x15341
jmp 0x15346
jmp 0x1533e
jmp 0x15346
jmp 0x1533e
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x1534e
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x1f8e0
movq %rbx, %rdi
callq 0xdbf0
nop