// File: halfflat[P]tinyopt/test/googletest/googletest/src/gtest-typed-test.cc
// Function: testing::internal::TypedTestSuitePState::VerifyRegisteredTestNames(char const*, char const*, int, char const*)
const char* TypedTestSuitePState::VerifyRegisteredTestNames(
    const char* test_suite_name, const char* file, int line,
    const char* registered_tests) {
  RegisterTypeParameterizedTestSuite(test_suite_name, CodeLocation(file, line));

  typedef RegisteredTestsMap::const_iterator RegisteredTestIter;
  registered_ = true;

  std::vector<std::string> name_vec = SplitIntoTestNames(registered_tests);

  Message errors;

  std::set<std::string> tests;
  for (std::vector<std::string>::const_iterator name_it = name_vec.begin();
       name_it != name_vec.end(); ++name_it) {
    const std::string& name = *name_it;
    if (tests.count(name) != 0) {
      errors << "Test " << name << " is listed more than once.\n";
      continue;
    }

    if (registered_tests_.count(name) != 0) {
      tests.insert(name);
    } else {
      errors << "No test named " << name
             << " can be found in this test suite.\n";
    }
  }

  for (RegisteredTestIter it = registered_tests_.begin();
       it != registered_tests_.end(); ++it) {
    if (tests.count(it->first) == 0) {
      errors << "You forgot to list test " << it->first << ".\n";
    }
  }

  const std::string& errors_str = errors.GetString();
  if (!errors_str.empty()) {
    fprintf(stderr, "%s %s", FormatFileLocation(file, line).c_str(),
            errors_str.c_str());
    fflush(stderr);
    posix::Abort();
  }

  return registered_tests;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x210, %rsp            # imm = 0x210
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x180(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x10e10
movq -0x180(%rbp), %rsi
movq -0x178(%rbp), %rdx
leaq -0x70(%rbp), %rdi
callq 0x1d070
jmp 0x7fc58
movl -0x1c(%rbp), %edx
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1d120
jmp 0x7fc6a
movq -0x188(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x80160
jmp 0x7fc7c
leaq -0x50(%rbp), %rdi
callq 0x1d430
leaq -0x70(%rbp), %rdi
callq 0x10fc8
leaq -0x71(%rbp), %rdi
callq 0x10810
movq -0x190(%rbp), %rax
movb $0x1, (%rax)
movq -0x28(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x801e0
leaq -0xa8(%rbp), %rdi
callq 0x84210
jmp 0x7fcbf
leaq -0xd8(%rbp), %rdi
callq 0xa4a00
leaq -0xa0(%rbp), %rdi
callq 0x3b980
movq %rax, -0xe8(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xe8(%rbp), %rsi
callq 0x61f50
leaq -0xa0(%rbp), %rdi
callq 0x3b800
movq %rax, -0xf0(%rbp)
leaq -0xe0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0xa4a20
testb $0x1, %al
jne 0x7fd20
jmp 0x7fef8
leaq -0xe0(%rbp), %rdi
callq 0x41cf0
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0xa4a60
movq %rax, -0x198(%rbp)
jmp 0x7fd4f
movq -0x198(%rbp), %rax
cmpq $0x0, %rax
je 0x7fe2b
leaq 0x4e1d2(%rip), %rsi     # 0xcdf39
leaq -0xa8(%rbp), %rdi
callq 0xa40b0
movq %rax, -0x1a0(%rbp)
jmp 0x7fd7c
movq -0x1a0(%rbp), %rdi
movq -0xf8(%rbp), %rsi
callq 0xa2ef0
movq %rax, -0x1a8(%rbp)
jmp 0x7fd98
movq -0x1a8(%rbp), %rdi
leaq 0x4e199(%rip), %rsi     # 0xcdf3f
callq 0xa2eb0
jmp 0x7fdad
jmp 0x7fee7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x7fdf5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x7fdec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x1d430
leaq -0x70(%rbp), %rdi
callq 0x10fc8
leaq -0x71(%rbp), %rdi
callq 0x10810
jmp 0x80155
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x80149
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
jmp 0x80131
movq -0x190(%rbp), %rdi
addq $0x8, %rdi
movq -0xf8(%rbp), %rsi
callq 0xa4ac0
movq %rax, -0x1b0(%rbp)
jmp 0x7fe4b
movq -0x1b0(%rbp), %rax
cmpq $0x0, %rax
je 0x7fe96
movq -0xf8(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0xa4b20
movb %dl, -0x1b9(%rbp)
movq %rax, -0x1b8(%rbp)
jmp 0x7fe7a
movb -0x1b9(%rbp), %al
movq -0x1b8(%rbp), %rcx
movq %rcx, -0x108(%rbp)
movb %al, -0x100(%rbp)
jmp 0x7fee5
leaq 0x4e0be(%rip), %rsi     # 0xcdf5b
leaq -0xa8(%rbp), %rdi
callq 0xa4b70
movq %rax, -0x1c8(%rbp)
jmp 0x7feb2
movq -0x1c8(%rbp), %rdi
movq -0xf8(%rbp), %rsi
callq 0xa2ef0
movq %rax, -0x1d0(%rbp)
jmp 0x7fece
movq -0x1d0(%rbp), %rdi
leaq 0x4e08e(%rip), %rsi     # 0xcdf6a
callq 0xa4bb0
jmp 0x7fee3
jmp 0x7fee5
jmp 0x7fee7
leaq -0xe0(%rbp), %rdi
callq 0x41d10
jmp 0x7fcf1
movq -0x190(%rbp), %rdi
addq $0x8, %rdi
callq 0xa4bf0
movq %rax, -0x118(%rbp)
leaq -0x110(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0xa4c20
movq -0x190(%rbp), %rdi
addq $0x8, %rdi
callq 0xa4c70
movq %rax, -0x128(%rbp)
leaq -0x120(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xa4c20
leaq -0x110(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0xa4c40
testb $0x1, %al
jne 0x7ff68
jmp 0x80003
leaq -0x110(%rbp), %rdi
callq 0xa4ca0
movq %rax, %rsi
leaq -0xd8(%rbp), %rdi
callq 0xa4a60
movq %rax, -0x1d8(%rbp)
jmp 0x7ff8c
movq -0x1d8(%rbp), %rax
cmpq $0x0, %rax
jne 0x7fff0
leaq 0x4dfed(%rip), %rsi     # 0xcdf8d
leaq -0xa8(%rbp), %rdi
callq 0xa4cc0
movq %rax, -0x1e0(%rbp)
jmp 0x7ffb5
leaq -0x110(%rbp), %rdi
callq 0xa4ca0
movq -0x1e0(%rbp), %rdi
movq %rax, %rsi
callq 0xa2ef0
movq %rax, -0x1e8(%rbp)
jmp 0x7ffd9
movq -0x1e8(%rbp), %rdi
leaq 0x4ebfc(%rip), %rsi     # 0xcebe3
callq 0xa4d00
jmp 0x7ffee
jmp 0x7fff0
jmp 0x7fff2
leaq -0x110(%rbp), %rdi
callq 0xa4d40
jmp 0x7ff22
leaq -0x150(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x77710
jmp 0x80018
leaq -0x150(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0x130(%rbp), %rdi
callq 0x10d70
testb $0x1, %al
jne 0x800e6
movq 0x96f7f(%rip), %rax     # 0x116fc0
movq (%rax), %rax
movq %rax, -0x1f0(%rbp)
movq -0x18(%rbp), %rsi
movl -0x1c(%rbp), %edx
leaq -0x170(%rbp), %rdi
callq 0x7d500
jmp 0x80060
leaq -0x170(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0x102c0
movq %rax, -0x200(%rbp)
movq -0x130(%rbp), %rdi
callq 0x102c0
movq -0x1f0(%rbp), %rdi
movq -0x200(%rbp), %rdx
movq %rax, %rcx
leaq 0x4df08(%rip), %rsi     # 0xcdfa6
xorl %eax, %eax
callq 0x10bc0
movq -0x1f8(%rbp), %rdi
callq 0x10fc8
movq 0x96f08(%rip), %rax     # 0x116fc0
movq (%rax), %rdi
callq 0x10930
jmp 0x800c2
callq 0xa4170
jmp 0x800c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x10fc8
jmp 0x80131
movq -0x28(%rbp), %rax
movq %rax, -0x208(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x10fc8
leaq -0xd8(%rbp), %rdi
callq 0xa4d70
leaq -0xa8(%rbp), %rdi
callq 0x1d500
leaq -0xa0(%rbp), %rdi
callq 0x390a0
movq -0x208(%rbp), %rax
addq $0x210, %rsp            # imm = 0x210
popq %rbp
retq
leaq -0xd8(%rbp), %rdi
callq 0xa4d70
leaq -0xa8(%rbp), %rdi
callq 0x1d500
leaq -0xa0(%rbp), %rdi
callq 0x390a0
movq -0x80(%rbp), %rdi
callq 0x10e00
nop