// File: /workspace/github_cpp_makefile_star2_O2/interimadd[P]M5Stack-PixelArt/test/lib/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 0x3cc5e
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 0x32bd8
leaq 0x2cf57(%rip), %rdx     # 0x5f8d0
cmpq %rdx, %r14
je 0x32aa3
cmpq %rdx, %r15
je 0x32aa3
leaq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x2f572
movq (%rbx), %rbx
addq $0x10, %rbx
leaq 0x14ed8(%rip), %rsi     # 0x4787e
movq %rbx, %rdi
callq 0x25440
leaq 0x14fe5(%rip), %rsi     # 0x4799a
movq %rbx, %rdi
callq 0x25440
movq (%r12), %rax
leaq 0x18(%rsp), %rsi
movq %rax, (%rsi)
leaq 0x8(%rsp), %rdi
callq 0x3d17e
leaq 0x14dcd(%rip), %rsi     # 0x477a7
movq %rax, %rdi
callq 0x3d1f0
leaq 0x14fd0(%rip), %rsi     # 0x479b9
movq %rax, %rdi
callq 0x3d1ae
leaq 0x28(%rsp), %rsi
movq %rax, %rdi
callq 0x3d17e
leaq 0x14fc6(%rip), %rsi     # 0x479cb
movq %rax, %rdi
callq 0x3cc6e
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x3d17e
leaq 0x15448(%rip), %rsi     # 0x47e69
movq %rax, %rdi
callq 0x3cc9a
leaq 0x14fa6(%rip), %rsi     # 0x479d6
movq %rax, %rdi
callq 0x3e0a2
leaq 0x14fd6(%rip), %rsi     # 0x47a15
movq %rax, %rdi
callq 0x3e076
leaq 0x15005(%rip), %rsi     # 0x47a53
movq %rax, %rdi
callq 0x3e0a2
leaq 0x15035(%rip), %rsi     # 0x47a92
movq %rax, %rdi
callq 0x3e01e
movq %rax, %rbx
leaq 0x14af2(%rip), %rdx     # 0x47561
leaq 0x14e01(%rip), %r8      # 0x47877
movq %rsp, %rdi
pushq $0x1
popq %rsi
movl $0x909, %ecx            # imm = 0x909
callq 0x2dddc
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x2de5a
movq %rsp, %rdi
callq 0x2de3c
leaq 0x8(%rsp), %rdi
jmp 0x32bd3
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 0x2f572
movq (%rbx), %rbx
addq $0x10, %rbx
leaq 0x14daa(%rip), %rsi     # 0x4787e
movq %rbx, %rdi
callq 0x25440
leaq 0x14ddb(%rip), %rsi     # 0x478be
movq %rbx, %rdi
callq 0x25440
movq (%rsp), %rdi
addq $0x10, %rdi
leaq 0x14dff(%rip), %rsi     # 0x478f9
callq 0x25440
movq (%r12), %rax
leaq 0x30(%rsp), %rsi
movq %rax, (%rsi)
movq %rsp, %rdi
callq 0x3d17e
leaq 0x14c8d(%rip), %rsi     # 0x477a7
movq %rax, %rdi
callq 0x3d1f0
leaq 0x14e9c(%rip), %rsi     # 0x479c5
movq %rax, %rdi
callq 0x3e034
leaq 0x18(%rsp), %rsi
movq %rax, %rdi
callq 0x3d17e
leaq 0x14dcc(%rip), %rsi     # 0x47911
movq %rax, %rdi
callq 0x3e04a
leaq 0x14e71(%rip), %rsi     # 0x479c5
movq %rax, %rdi
callq 0x3e034
leaq 0x8(%rsp), %rsi
movq %rax, %rdi
callq 0x3d17e
leaq 0x14dbf(%rip), %rsi     # 0x4792f
movq %rax, %rdi
callq 0x3e060
leaq 0x14dd7(%rip), %rsi     # 0x47956
movq %rax, %rdi
callq 0x3e076
leaq 0x14e06(%rip), %rsi     # 0x47994
movq %rax, %rdi
callq 0x3e034
movq %rax, %rbx
leaq 0x149c1(%rip), %rdx     # 0x47561
leaq 0x14cd0(%rip), %r8      # 0x47877
leaq 0x10(%rsp), %rdi
pushq $0x1
popq %rsi
movl $0x8fd, %ecx            # imm = 0x8FD
callq 0x2dddc
leaq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x2de5a
leaq 0x10(%rsp), %rdi
callq 0x2de3c
movq %rsp, %rdi
callq 0x27e3a
cmpq %r14, %r15
sete %al
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, %rbx
movq %rsp, %rdi
callq 0x2de3c
jmp 0x32c19
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x2de3c
jmp 0x32c11
jmp 0x32c16
jmp 0x32c0e
jmp 0x32c16
jmp 0x32c0e
movq %rax, %rbx
movq %rsp, %rdi
jmp 0x32c1e
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x27e3a
movq %rbx, %rdi
callq 0x25930
nop