aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGennadiy Civil <gennadiycivil@users.noreply.github.com>2018-08-19 14:16:03 -0400
committerGitHub <noreply@github.com>2018-08-19 14:16:03 -0400
commit1778f2091e90c9cf36d0f7c01f3da5dd203db3a4 (patch)
tree5ca1063e0b6e4117e3592c74350d1d95cb595d04
parentd1c1aac78160ae31353d9fe1bb1171353986a4f1 (diff)
parent97274b1e9488e8814d978f164510a8bca52509f0 (diff)
downloadgoogletest-1778f2091e90c9cf36d0f7c01f3da5dd203db3a4.tar.gz
googletest-1778f2091e90c9cf36d0f7c01f3da5dd203db3a4.tar.bz2
googletest-1778f2091e90c9cf36d0f7c01f3da5dd203db3a4.zip
Merge pull request #1347 from Burgch/fix-argc
Fix value pointed to by `_NSGetArgc()` on macOS.
-rw-r--r--googletest/src/gtest.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc
index 2bcdfd1e..a229549f 100644
--- a/googletest/src/gtest.cc
+++ b/googletest/src/gtest.cc
@@ -138,6 +138,12 @@
# 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 +5831,17 @@ void ParseGoogleTestFlagsOnlyImpl(int* argc, CharType** argv) {
// 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);