// File: /workspace/github_cpp_makefile_star2_O2/WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.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) {
      // The user mixed TEST and TEST_F in this test case - we'll tell
      // him/her how to fix it.

      // 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 {
      // The user defined two fixture classes with the same name in
      // two namespaces - we'll tell him/her how to fix it.
      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 0x1552e
movq 0x108(%rax), %rcx
movq 0x30(%rcx), %rcx
movq (%rcx), %rcx
movq 0x50(%rcx), %r14
movq 0x20(%rcx), %rcx
movq %rcx, 0x28(%rsp)
movq 0x110(%rax), %r12
movq 0x50(%r12), %r15
movq 0x20(%r12), %rax
movq %rax, 0x20(%rsp)
cmpq %r14, %r15
je 0xb9ac
leaq 0x2302b(%rip), %rdx     # 0x2e778
cmpq %rdx, %r14
je 0xb877
cmpq %rdx, %r15
je 0xb877
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x8f22
movq (%rbx), %rbx
addq $0x10, %rbx
leaq 0x12d73(%rip), %rsi     # 0x1e4ed
movq %rbx, %rdi
callq 0x6410
leaq 0x12e80(%rip), %rsi     # 0x1e609
movq %rbx, %rdi
callq 0x6410
movq (%r12), %rax
leaq 0x18(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x8(%rsp), %rdi
callq 0x1589c
leaq 0x12c68(%rip), %rsi     # 0x1e416
movq %rax, %rdi
callq 0x158e2
leaq 0x12e6b(%rip), %rsi     # 0x1e628
movq %rax, %rdi
callq 0x16512
leaq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x1589c
leaq 0x12e61(%rip), %rsi     # 0x1e63a
movq %rax, %rdi
callq 0x1553e
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x1589c
leaq 0x132af(%rip), %rsi     # 0x1eaa4
movq %rax, %rdi
callq 0x1556a
leaq 0x12e41(%rip), %rsi     # 0x1e645
movq %rax, %rdi
callq 0x16912
leaq 0x12e71(%rip), %rsi     # 0x1e684
movq %rax, %rdi
callq 0x168e6
leaq 0x12ea0(%rip), %rsi     # 0x1e6c2
movq %rax, %rdi
callq 0x16912
leaq 0x12ed0(%rip), %rsi     # 0x1e701
movq %rax, %rdi
callq 0x1688e
movq %rax, %rbx
leaq 0x12a1e(%rip), %rdx     # 0x1e261
leaq 0x12c9c(%rip), %r8      # 0x1e4e6
movq %rsp, %rdi
pushq $0x1
popq %rsi
movl $0xd91, %ecx            # imm = 0xD91
callq 0x78f2
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x7970
movq %rsp, %rdi
callq 0x7952
leaq 0x8(%rsp), %rdi
jmp 0xb9a7
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 0x8f22
movq (%rbx), %rbx
addq $0x10, %rbx
leaq 0x12c45(%rip), %rsi     # 0x1e4ed
movq %rbx, %rdi
callq 0x6410
leaq 0x12c76(%rip), %rsi     # 0x1e52d
movq %rbx, %rdi
callq 0x6410
movq (%rsp), %rdi
addq $0x10, %rdi
leaq 0x12c9a(%rip), %rsi     # 0x1e568
callq 0x6410
movq (%r12), %rax
leaq 0x30(%rsp), %rsi
movq %rax, (%rsi)
movq %rsp, %rdi
callq 0x1589c
leaq 0x12b28(%rip), %rsi     # 0x1e416
movq %rax, %rdi
callq 0x158e2
leaq 0x12d37(%rip), %rsi     # 0x1e634
movq %rax, %rdi
callq 0x168a4
leaq 0x18(%rsp), %rsi
movq %rax, %rdi
callq 0x1589c
leaq 0x12c67(%rip), %rsi     # 0x1e580
movq %rax, %rdi
callq 0x168ba
leaq 0x12d0c(%rip), %rsi     # 0x1e634
movq %rax, %rdi
callq 0x168a4
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x1589c
leaq 0x12c5a(%rip), %rsi     # 0x1e59e
movq %rax, %rdi
callq 0x168d0
leaq 0x12c72(%rip), %rsi     # 0x1e5c5
movq %rax, %rdi
callq 0x168e6
leaq 0x12ca1(%rip), %rsi     # 0x1e603
movq %rax, %rdi
callq 0x168a4
movq %rax, %rbx
leaq 0x128ed(%rip), %rdx     # 0x1e261
leaq 0x12b6b(%rip), %r8      # 0x1e4e6
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rsi
movl $0xd85, %ecx            # imm = 0xD85
callq 0x78f2
leaq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x7970
leaq 0x10(%rsp), %rdi
callq 0x7952
movq %rsp, %rdi
callq 0x731c
cmpq %r14, %r15
sete %al
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq %rsp, %rdi
callq 0x7952
jmp 0xb9ed
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x7952
jmp 0xb9e5
jmp 0xb9ea
jmp 0xb9e2
jmp 0xb9ea
jmp 0xb9e2
movq %rax, %rbx
movq %rsp, %rdi
jmp 0xb9f2
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x731c
movq %rbx, %rdi
callq 0x6900
nop