Googletest export

  - 345239627 Automated g4 rollback of changelist 342977338. by Abseil Team <absl-team@google.com>
  - 345106443 BEGIN_PUBLIC by Abseil Team <absl-team@google.com>
  - 344882646 BEGIN_PUBLIC by dmauro <dmauro@google.com>
  - 344054658 BEGIN_PUBLIC by Abseil Team <absl-team@google.com>

PiperOrigin-RevId: 345239627
diff --git a/.travis.yml b/.travis.yml
index d7b23b9..45a5df8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,17 +26,19 @@
     - os: linux
       dist: bionic
       compiler: gcc
-      env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS="-std=c++11 -Wdeprecated"
+      env: BUILD_TYPE=Debug CXX_FLAGS="-std=c++11 -Wdeprecated"
     - os: linux
       dist: bionic
       compiler: clang
-      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS="-std=c++11 -Wdeprecated" NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON
+      env: BUILD_TYPE=Release CXX_FLAGS="-std=c++11 -Wdeprecated" NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON
     - os: osx
+      osx_image: xcode12.2
       compiler: gcc
-      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS="-std=c++11 -Wdeprecated" HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
+      env: BUILD_TYPE=Release CC=gcc-10 CXX=g++-10 CXX_FLAGS="-std=c++11 -Wdeprecated" HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
     - os: osx
+      osx_image: xcode12.2
       compiler: clang
-      env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS="-std=c++11 -Wdeprecated" HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
+      env: BUILD_TYPE=Release CXX_FLAGS="-std=c++11 -Wdeprecated" HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
 
 # These are the install and build (script) phases for the most common entries in the matrix.  They could be included
 # in each entry in the matrix, but that is just repetitive.
@@ -56,9 +58,7 @@
     update: true
   homebrew:
     packages:
-    - ccache
-    - gcc@4.9
-    - llvm@4
+    - gcc@10
     update: true
 
 notifications:
diff --git a/ci/env-osx.sh b/ci/env-osx.sh
index 9c421e1..fd4239f 100755
--- a/ci/env-osx.sh
+++ b/ci/env-osx.sh
@@ -33,15 +33,9 @@
 # This file should be sourced, and not executed as a standalone script.
 #
 
-# TODO() - we can check if this is being sourced using $BASH_VERSION and $BASH_SOURCE[0] != ${0}.
-#
-
-if [ "${TRAVIS_OS_NAME}" = "osx" ]; then
-    if [ "$CXX" = "clang++" ]; then
-        # $PATH needs to be adjusted because the llvm tap doesn't install the
-        # package to /usr/local/bin, etc, like the gcc tap does.
-        # See: https://github.com/Homebrew/legacy-homebrew/issues/29733
-        clang_version=3.9
-        export PATH="/usr/local/opt/llvm@${clang_version}/bin:$PATH";
-    fi
+if [ "${TRAVIS_OS_NAME}" != "osx" ]; then
+   echo "Not a macOS build; skipping"
+   exit 0
 fi
+
+# This file is currently intentionally empty.
diff --git a/ci/install-osx.sh b/ci/install-osx.sh
index cc47508..c81c33c 100755
--- a/ci/install-osx.sh
+++ b/ci/install-osx.sh
@@ -36,5 +36,4 @@
     exit 0
 fi
 
-brew update
-brew install ccache gcc@4.9
+# This file is currently intentionally empty.
diff --git a/ci/log-config.sh b/ci/log-config.sh
index 5fef119..c76c49a 100755
--- a/ci/log-config.sh
+++ b/ci/log-config.sh
@@ -31,10 +31,6 @@
 
 set -e
 
-# ccache on OS X needs installation first
-# reset ccache statistics
-ccache --zero-stats
-
 echo PATH=${PATH}
 
 echo "Compiler configuration:"
diff --git a/googlemock/docs/cheat_sheet.md b/googlemock/docs/cheat_sheet.md
index e6cffd0..bcb4ce9 100644
--- a/googlemock/docs/cheat_sheet.md
+++ b/googlemock/docs/cheat_sheet.md
@@ -540,7 +540,7 @@
 | `DeleteArg<N>()` | Delete the `N`-th (0-based) argument, which must be a pointer. |
 | `SaveArg<N>(pointer)` | Save the `N`-th (0-based) argument to `*pointer`. |
 | `SaveArgPointee<N>(pointer)` | Save the value pointed to by the `N`-th (0-based) argument to `*pointer`. |
-| `SetArgReferee<N>(value)` | Assign value to the variable referenced by the `N`-th (0-based) argument. |
+| `SetArgReferee<N>(value)` | Assign `value` to the variable referenced by the `N`-th (0-based) argument. |
 | `SetArgPointee<N>(value)` | Assign `value` to the variable pointed by the `N`-th (0-based) argument. |
 | `SetArgumentPointee<N>(value)` | Same as `SetArgPointee<N>(value)`. Deprecated. Will be removed in v1.7.0. |
 | `SetArrayArgument<N>(first, last)` | Copies the elements in source range [`first`, `last`) to the array pointed to by the `N`-th (0-based) argument, which can be either a pointer or an iterator. The action does not take ownership of the elements in the source range. |
diff --git a/googletest/include/gtest/internal/gtest-port-arch.h b/googletest/include/gtest/internal/gtest-port-arch.h
index d3239b2..813bf2c 100644
--- a/googletest/include/gtest/internal/gtest-port-arch.h
+++ b/googletest/include/gtest/internal/gtest-port-arch.h
@@ -68,6 +68,7 @@
 # define GTEST_OS_OS2 1
 #elif defined __APPLE__
 # define GTEST_OS_MAC 1
+# include <TargetConditionals.h>
 # if TARGET_OS_IPHONE
 #  define GTEST_OS_IOS 1
 # endif
diff --git a/googletest/test/googletest-break-on-failure-unittest.py b/googletest/test/googletest-break-on-failure-unittest.py
index a5dfbc6..5c6cfe9 100755
--- a/googletest/test/googletest-break-on-failure-unittest.py
+++ b/googletest/test/googletest-break-on-failure-unittest.py
@@ -39,6 +39,7 @@
 """
 
 import os
+import sys
 import gtest_test_utils
 
 # Constants.
@@ -77,6 +78,7 @@
   """Runs a command; returns 1 if it was killed by a signal, or 0 otherwise."""
 
   p = gtest_test_utils.Subprocess(command, env=environ)
+  print("XX=%x" % (p._return_code,))
   if p.terminated_by_signal:
     return 1
   else:
@@ -180,6 +182,9 @@
                       flag_value='1',
                       expect_seg_fault=1)
 
+  def testBreadcrumb(self):
+    self.assertEqual("%s %s" % (os.name, sys.version), "---wat")
+
   def testBreakOnFailureOverridesThrowOnFailure(self):
     """Tests that gtest_break_on_failure overrides gtest_throw_on_failure."""