// File: /workspace/github_cpp_makefile_star2_O1/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
cmpl $0x2, (%rdi)
jl 0x20ef3
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x8(%rsi), %r15
movl $0x1, %r12d
movslq %r12d, %r13
leaq (%rbx,%r13,8), %rsi
leaq 0x8(%rsp), %rdi
callq 0x265c1
movq 0x8(%rsp), %rbp
movq %rbp, %rdi
leaq 0x674f(%rip), %rsi      # 0x273a0
leaq 0x168ea(%rip), %rdx     # 0x37542
callq 0x15279
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6751(%rip), %rsi      # 0x273c0
leaq 0x168cd(%rip), %rdx     # 0x37543
callq 0x15279
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6753(%rip), %rsi      # 0x273e0
leaq 0x168b0(%rip), %rdx     # 0x37544
callq 0x15279
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6746(%rip), %rsi      # 0x273f1
leaq 0x16896(%rip), %rdx     # 0x37548
callq 0x15374
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6897(%rip), %rsi      # 0x27560
leaq 0x16a00(%rip), %rdx     # 0x376d0
callq 0x15374
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6899(%rip), %rsi      # 0x27580
leaq 0x16a02(%rip), %rdx     # 0x376f0
callq 0x15279
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x66f2(%rip), %rsi      # 0x273f7
leaq 0x1685c(%rip), %rdx     # 0x37568
callq 0x15374
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x687d(%rip), %rsi      # 0x275a0
leaq 0x16986(%rip), %rdx     # 0x376b0
callq 0x15374
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6b22(%rip), %rsi      # 0x27863
leaq 0x16840(%rip), %rdx     # 0x37588
callq 0x15279
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x669f(%rip), %rsi      # 0x273fe
leaq 0x1682a(%rip), %rdx     # 0x37590
callq 0x15374
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6688(%rip), %rsi      # 0x27405
leaq 0x1682c(%rip), %rdx     # 0x375b0
callq 0x15279
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6675(%rip), %rsi      # 0x27410
leaq 0x16812(%rip), %rdx     # 0x375b4
callq 0x152ab
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6663(%rip), %rsi      # 0x2741c
leaq 0x167f8(%rip), %rdx     # 0x375b8
callq 0x152ab
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6650(%rip), %rsi      # 0x27423
leaq 0x167e3(%rip), %rdx     # 0x375bd
callq 0x15279
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6643(%rip), %rsi      # 0x27430
leaq 0x167cc(%rip), %rdx     # 0x375c0
callq 0x152ab
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x6649(%rip), %rsi      # 0x27450
leaq 0x167ba(%rip), %rdx     # 0x375c8
callq 0x15374
testb %al, %al
jne 0x20e31
movq %rbp, %rdi
leaq 0x664f(%rip), %rsi      # 0x27470
leaq 0x167c0(%rip), %rdx     # 0x375e8
callq 0x15279
testb %al, %al
je 0x20e83
movl (%r14), %eax
movl %eax, %ecx
subl %r12d, %ecx
je 0x20e51
leaq (%r15,%r13,8), %rdx
xorl %esi, %esi
movq (%rdx,%rsi,8), %rdi
movq %rdi, -0x8(%rdx,%rsi,8)
incq %rsi
cmpl %esi, %ecx
jne 0x20e41
decl %eax
movl %eax, (%r14)
decl %r12d
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x20e75
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6430
incl %r12d
cmpl (%r14), %r12d
jl 0x20c31
jmp 0x20ef3
leaq 0x8(%rsp), %rdi
leaq 0x9000(%rip), %rsi      # 0x29e8f
callq 0x6120
testl %eax, %eax
je 0x20ee7
leaq 0x8(%rsp), %rdi
leaq 0x8ff2(%rip), %rsi      # 0x29e96
callq 0x6120
testl %eax, %eax
je 0x20ee7
leaq 0x8(%rsp), %rdi
leaq 0x8fe0(%rip), %rsi      # 0x29e99
callq 0x6120
testl %eax, %eax
je 0x20ee7
leaq 0x8(%rsp), %rdi
leaq 0x8fce(%rip), %rsi      # 0x29e9c
callq 0x6120
testl %eax, %eax
je 0x20ee7
movq %rbp, %rdi
callq 0x1dd3f
testb %al, %al
je 0x20e59
movb $0x1, 0x16653(%rip)     # 0x37541
jmp 0x20e59
cmpb $0x0, 0x16647(%rip)     # 0x37541
je 0x20f01
callq 0x1ddbb
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x20f2f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6430
movq %rbx, %rdi
callq 0x68e0