Fix build with VS 2017.

Lots more warnings to disable...

Change-Id: Ic240dd74d9abab8fe6d696c15267138b857d0dc1
Reviewed-on: https://boringssl-review.googlesource.com/16745
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: Adam Langley <agl@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7cc9100..3898ac8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -89,9 +89,11 @@
       "C4706" # assignment within conditional expression
       "C4710" # 'function': function not inlined
       "C4711" # function 'function' selected for inline expansion
+      "C4774" # format string is not a string literal
       "C4800" # 'int' : forcing value to bool 'true' or 'false'
               # (performance warning)
       "C4820" # 'bytes' bytes padding added after construct 'member_name'
+      "C4987" # nonstandard extension used: 'throw (...)'
       "C5026" # move constructor was implicitly defined as deleted
       "C5027" # move assignment operator was implicitly defined as deleted
       )
diff --git a/ssl/test/bssl_shim.cc b/ssl/test/bssl_shim.cc
index fc8e4a6..3b08a98 100644
--- a/ssl/test/bssl_shim.cc
+++ b/ssl/test/bssl_shim.cc
@@ -447,8 +447,8 @@
   const TestConfig *config = GetTestConfig(ssl);
 
   if (!config->digest_prefs.empty()) {
-    std::unique_ptr<char, Free<char>> digest_prefs(
-        strdup(config->digest_prefs.c_str()));
+    bssl::UniquePtr<char> digest_prefs(
+        OPENSSL_strdup(config->digest_prefs.c_str()));
     std::vector<int> digest_list;
 
     for (;;) {
diff --git a/third_party/googletest/METADATA b/third_party/googletest/METADATA
index 477e904..88139d1 100644
--- a/third_party/googletest/METADATA
+++ b/third_party/googletest/METADATA
@@ -15,4 +15,5 @@
       "https://github.com/google/googletest/pull/965 was applied."
       "https://github.com/google/googletest/pull/991 was applied."
       "https://github.com/google/googletest/pull/1007 was applied."
+      "https://github.com/google/googletest/pull/1109 was applied."
 }
diff --git a/third_party/googletest/include/gtest/gtest.h b/third_party/googletest/include/gtest/gtest.h
index f846c5b..d2d458c 100644
--- a/third_party/googletest/include/gtest/gtest.h
+++ b/third_party/googletest/include/gtest/gtest.h
@@ -259,7 +259,9 @@
   // Used in EXPECT_TRUE/FALSE(assertion_result).
   AssertionResult(const AssertionResult& other);
 
-  GTEST_DISABLE_MSC_WARNINGS_PUSH_(4800 /* forcing value to bool */)
+  GTEST_DISABLE_MSC_WARNINGS_PUSH_(
+      4619 /* unknown warning (warning 4800 is removed in MSVC 2017) */
+      4800 /* forcing value to bool */)
 
   // Used in the EXPECT_TRUE/FALSE(bool_expression).
   //