// File: /workspace/github_cpp_makefile_star2_O2/WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.cc
// Function: void testing::internal::ParseGoogleTestFlagsOnlyImpl<char>(int*, char**)
void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
  for (int i = 1; i < *argc; i++) {
    const std::string arg_string = StreamableToString(argv[i]);
    const char* const arg = arg_string.c_str();

    using internal::ParseBoolFlag;
    using internal::ParseInt32Flag;
    using internal::ParseStringFlag;

    // Do we see a Google Test flag?
    if (ParseBoolFlag(arg, kAlsoRunDisabledTestsFlag,
                      &GTEST_FLAG(also_run_disabled_tests)) ||
        ParseBoolFlag(arg, kBreakOnFailureFlag,
                      &GTEST_FLAG(break_on_failure)) ||
        ParseBoolFlag(arg, kCatchExceptionsFlag,
                      &GTEST_FLAG(catch_exceptions)) ||
        ParseStringFlag(arg, kColorFlag, &GTEST_FLAG(color)) ||
        ParseStringFlag(arg, kDeathTestStyleFlag,
                        &GTEST_FLAG(death_test_style)) ||
        ParseBoolFlag(arg, kDeathTestUseFork,
                      &GTEST_FLAG(death_test_use_fork)) ||
        ParseStringFlag(arg, kFilterFlag, &GTEST_FLAG(filter)) ||
        ParseStringFlag(arg, kInternalRunDeathTestFlag,
                        &GTEST_FLAG(internal_run_death_test)) ||
        ParseBoolFlag(arg, kListTestsFlag, &GTEST_FLAG(list_tests)) ||
        ParseStringFlag(arg, kOutputFlag, &GTEST_FLAG(output)) ||
        ParseBoolFlag(arg, kPrintTimeFlag, &GTEST_FLAG(print_time)) ||
        ParseInt32Flag(arg, kRandomSeedFlag, &GTEST_FLAG(random_seed)) ||
        ParseInt32Flag(arg, kRepeatFlag, &GTEST_FLAG(repeat)) ||
        ParseBoolFlag(arg, kShuffleFlag, &GTEST_FLAG(shuffle)) ||
        ParseInt32Flag(arg, kStackTraceDepthFlag,
                       &GTEST_FLAG(stack_trace_depth)) ||
        ParseStringFlag(arg, kStreamResultToFlag,
                        &GTEST_FLAG(stream_result_to)) ||
        ParseBoolFlag(arg, kThrowOnFailureFlag,
                      &GTEST_FLAG(throw_on_failure))
        ) {
      // Yes.  Shift the remainder of the argv list left by one.  Note
      // that argv has (*argc + 1) elements, the last one always being
      // NULL.  The following loop moves the trailing NULL element as
      // well.
      for (int j = i; j != *argc; j++) {
        argv[j] = argv[j + 1];
      }

      // Decrements the argument count.
      (*argc)--;

      // We also need to decrement the iterator as we just removed
      // an element.
      i--;
    } else if (arg_string == "--help" || arg_string == "-h" ||
               arg_string == "-?" || arg_string == "/?" ||
               HasGoogleTestFlagPrefix(arg)) {
      // Both help flag and unrecognized Google Test flags (excluding
      // internal ones) trigger help display.
      g_help_flag = true;
    }
  }

  if (g_help_flag) {
    // We print the help here instead of in RUN_ALL_TESTS(), as the
    // latter may not be called at all if the user is using Google
    // Test with another testing framework.
    PrintColorEncoded(kColorEncodedHelpMessage);
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %rbx
movq %rdi, %r14
pushq $0x1
popq %r12
leaq 0x8(%rsp), %r15
cmpl (%r14), %r12d
jge 0x17d3d
movslq %r12d, %r13
leaq (%rbx,%r13,8), %rsi
movq %r15, %rdi
callq 0x1c2d7
movq 0x8(%rsp), %rbp
movq %rbp, %rdi
leaq 0x58a2(%rip), %rsi      # 0x1d370
leaq 0x16a8d(%rip), %rdx     # 0x2e562
callq 0x10e0b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x58a4(%rip), %rsi      # 0x1d390
leaq 0x16a70(%rip), %rdx     # 0x2e563
callq 0x10e0b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x58a6(%rip), %rsi      # 0x1d3b0
leaq 0x16a53(%rip), %rdx     # 0x2e564
callq 0x10e0b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x5899(%rip), %rsi      # 0x1d3c1
leaq 0x16a39(%rip), %rdx     # 0x2e568
callq 0x10ec9
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x59ea(%rip), %rsi      # 0x1d530
leaq 0x16ba3(%rip), %rdx     # 0x2e6f0
callq 0x10ec9
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x59ec(%rip), %rsi      # 0x1d550
leaq 0x16ba5(%rip), %rdx     # 0x2e710
callq 0x10e0b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x5845(%rip), %rsi      # 0x1d3c7
leaq 0x169ff(%rip), %rdx     # 0x2e588
callq 0x10ec9
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x59d0(%rip), %rsi      # 0x1d570
leaq 0x16b29(%rip), %rdx     # 0x2e6d0
callq 0x10ec9
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x5c75(%rip), %rsi      # 0x1d833
leaq 0x169e3(%rip), %rdx     # 0x2e5a8
callq 0x10e0b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x57f2(%rip), %rsi      # 0x1d3ce
leaq 0x169cd(%rip), %rdx     # 0x2e5b0
callq 0x10ec9
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x57db(%rip), %rsi      # 0x1d3d5
leaq 0x169cf(%rip), %rdx     # 0x2e5d0
callq 0x10e0b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x57c8(%rip), %rsi      # 0x1d3e0
leaq 0x169b5(%rip), %rdx     # 0x2e5d4
callq 0x10e3b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x57b6(%rip), %rsi      # 0x1d3ec
leaq 0x1699b(%rip), %rdx     # 0x2e5d8
callq 0x10e3b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x57a3(%rip), %rsi      # 0x1d3f3
leaq 0x16986(%rip), %rdx     # 0x2e5dd
callq 0x10e0b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x5796(%rip), %rsi      # 0x1d400
leaq 0x1696f(%rip), %rdx     # 0x2e5e0
callq 0x10e3b
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x579c(%rip), %rsi      # 0x1d420
leaq 0x1695d(%rip), %rdx     # 0x2e5e8
callq 0x10ec9
testb %al, %al
jne 0x17cae
movq %rbp, %rdi
leaq 0x57a2(%rip), %rsi      # 0x1d440
leaq 0x16963(%rip), %rdx     # 0x2e608
callq 0x10e0b
testb %al, %al
je 0x17cdc
movslq (%r14), %rax
cmpq %r13, %rax
je 0x17cc4
movq 0x8(%rbx,%r13,8), %rcx
movq %rcx, (%rbx,%r13,8)
incq %r13
jmp 0x17cb1
decl %eax
movl %eax, (%r14)
decl %r12d
movq %r15, %rdi
callq 0x6a28
incl %r12d
jmp 0x17aa7
movq %r15, %rdi
leaq 0x8179(%rip), %rsi      # 0x1fe5f
callq 0x175b5
testb %al, %al
jne 0x17d34
movq %r15, %rdi
leaq 0x816d(%rip), %rsi      # 0x1fe66
callq 0x175b5
testb %al, %al
jne 0x17d34
movq %r15, %rdi
leaq 0x815d(%rip), %rsi      # 0x1fe69
callq 0x175b5
testb %al, %al
jne 0x17d34
movq %r15, %rdi
leaq 0x814d(%rip), %rsi      # 0x1fe6c
callq 0x175b5
testb %al, %al
jne 0x17d34
movq %rbp, %rdi
callq 0x15185
testb %al, %al
je 0x17ccc
movb $0x1, 0x16826(%rip)     # 0x2e561
jmp 0x17ccc
cmpb $0x0, 0x1681d(%rip)     # 0x2e561
je 0x17d4b
callq 0x15201
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x6a28
movq %rbx, %rdi
callq 0x6900