// File: /workspace/github_cpp_makefile_star2_O3/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 0x208cf
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 0x25feb
movq 0x8(%rsp), %rbp
movq %rbp, %rdi
leaq 0x6d73(%rip), %rsi      # 0x273a0
leaq 0x16f0e(%rip), %rdx     # 0x37542
callq 0x14eff
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6d75(%rip), %rsi      # 0x273c0
leaq 0x16ef1(%rip), %rdx     # 0x37543
callq 0x14eff
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6d77(%rip), %rsi      # 0x273e0
leaq 0x16ed4(%rip), %rdx     # 0x37544
callq 0x14eff
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6d6a(%rip), %rsi      # 0x273f1
leaq 0x16eba(%rip), %rdx     # 0x37548
callq 0x14fea
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6ebb(%rip), %rsi      # 0x27560
leaq 0x17024(%rip), %rdx     # 0x376d0
callq 0x14fea
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6ebd(%rip), %rsi      # 0x27580
leaq 0x17026(%rip), %rdx     # 0x376f0
callq 0x14eff
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6d16(%rip), %rsi      # 0x273f7
leaq 0x16e80(%rip), %rdx     # 0x37568
callq 0x14fea
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6ea1(%rip), %rsi      # 0x275a0
leaq 0x16faa(%rip), %rdx     # 0x376b0
callq 0x14fea
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x7146(%rip), %rsi      # 0x27863
leaq 0x16e64(%rip), %rdx     # 0x37588
callq 0x14eff
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6cc3(%rip), %rsi      # 0x273fe
leaq 0x16e4e(%rip), %rdx     # 0x37590
callq 0x14fea
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6cac(%rip), %rsi      # 0x27405
leaq 0x16e50(%rip), %rdx     # 0x375b0
callq 0x14eff
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6c99(%rip), %rsi      # 0x27410
leaq 0x16e36(%rip), %rdx     # 0x375b4
callq 0x14f31
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6c87(%rip), %rsi      # 0x2741c
leaq 0x16e1c(%rip), %rdx     # 0x375b8
callq 0x14f31
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6c74(%rip), %rsi      # 0x27423
leaq 0x16e07(%rip), %rdx     # 0x375bd
callq 0x14eff
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6c67(%rip), %rsi      # 0x27430
leaq 0x16df0(%rip), %rdx     # 0x375c0
callq 0x14f31
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6c6d(%rip), %rsi      # 0x27450
leaq 0x16dde(%rip), %rdx     # 0x375c8
callq 0x14fea
testb %al, %al
jne 0x2080d
movq %rbp, %rdi
leaq 0x6c73(%rip), %rsi      # 0x27470
leaq 0x16de4(%rip), %rdx     # 0x375e8
callq 0x14eff
testb %al, %al
je 0x2085f
movl (%r14), %eax
movl %eax, %ecx
subl %r12d, %ecx
je 0x2082d
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 0x2081d
decl %eax
movl %eax, (%r14)
decl %r12d
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x20851
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6430
incl %r12d
cmpl (%r14), %r12d
jl 0x2060d
jmp 0x208cf
leaq 0x8(%rsp), %rdi
leaq 0x9624(%rip), %rsi      # 0x29e8f
callq 0x6120
testl %eax, %eax
je 0x208c3
leaq 0x8(%rsp), %rdi
leaq 0x9616(%rip), %rsi      # 0x29e96
callq 0x6120
testl %eax, %eax
je 0x208c3
leaq 0x8(%rsp), %rdi
leaq 0x9604(%rip), %rsi      # 0x29e99
callq 0x6120
testl %eax, %eax
je 0x208c3
leaq 0x8(%rsp), %rdi
leaq 0x95f2(%rip), %rsi      # 0x29e9c
callq 0x6120
testl %eax, %eax
je 0x208c3
movq %rbp, %rdi
callq 0x1d8b4
testb %al, %al
je 0x20835
movb $0x1, 0x16c77(%rip)     # 0x37541
jmp 0x20835
cmpb $0x0, 0x16c6b(%rip)     # 0x37541
je 0x208dd
callq 0x1d930
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 0x2090b
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6430
movq %rbx, %rdi
callq 0x68e0