Merge branch 'master' into fix-argc
diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc
index 2bcdfd1..7832aa3 100644
--- a/googletest/src/gtest.cc
+++ b/googletest/src/gtest.cc
@@ -138,6 +138,13 @@
 # define vsnprintf _vsnprintf
 #endif  // GTEST_OS_WINDOWS
 
+
+#if GTEST_OS_MAC
+# ifndef GTEST_OS_IOS
+#  include <crt_externs.h>
+# endif
+#endif
+
 #if GTEST_HAS_ABSL
 #include "absl/debugging/failure_signal_handler.h"
 #include "absl/debugging/stacktrace.h"
@@ -5825,6 +5832,17 @@
 // other parts of Google Test.
 void ParseGoogleTestFlagsOnly(int* argc, char** argv) {
   ParseGoogleTestFlagsOnlyImpl(argc, argv);
+  
+  // Fix the value of *_NSGetArgc() on macOS, but iff 
+  // *_NSGetArgv() == argv
+  // Only applicable to char** version of argv
+#if GTEST_OS_MAC
+# ifndef GTEST_OS_IOS
+  if (*_NSGetArgv() == argv) {
+    *_NSGetArgc() = *argc;
+  }
+# endif
+#endif
 }
 void ParseGoogleTestFlagsOnly(int* argc, wchar_t** argv) {
   ParseGoogleTestFlagsOnlyImpl(argc, argv);