Fix ordering of ParseCommandLineFlags() & InitGoogleTest() for Windows.

- On Windows gtest passes additional non-gflags command line flags
  for death-tests, to avoid gflags invoking an error for these flags
  InitGoogleTest() must be called before ParseCommandLineFlags() to
  handle and remove them before gflags parses the remaining flags.

Change-Id: I0c705ecd3aa029b70a2589b592e6a2c192745c0e
diff --git a/internal/ceres/gmock_main.cc b/internal/ceres/gmock_main.cc
index 92b74d2..482d293 100644
--- a/internal/ceres/gmock_main.cc
+++ b/internal/ceres/gmock_main.cc
@@ -52,11 +52,17 @@
 #else
 int main(int argc, char** argv) {
 #endif  // GTEST_OS_WINDOWS_MOBILE
-  google::ParseCommandLineFlags(&argc, &argv, true);
   google::InitGoogleLogging(argv[0]);
   // Since Google Mock depends on Google Test, InitGoogleMock() is
   // also responsible for initializing Google Test.  Therefore there's
   // no need for calling testing::InitGoogleTest() separately.
   testing::InitGoogleMock(&argc, argv);
+  // On Windows, gtest passes additional non-gflags command line flags to
+  // death-tests, specifically --gtest_filter & --gtest_internal_run_death_test
+  // in order that these unknown (to gflags) flags do not invoke an error in
+  // gflags, InitGoogleTest() (called by InitGoogleMock()) must be called
+  // before ParseCommandLineFlags() to handle & remove them before gflags
+  // parses the remaining flags.
+  google::ParseCommandLineFlags(&argc, &argv, true);
   return RUN_ALL_TESTS();
 }