Rename sys::Process::GetArgumentVector -> sys::windows::GetCommandLineArguments

GetArgumentVector (or GetCommandLineArguments) is very Windows-specific.
I think it doesn't make much sense to provide that function from sys::Process.

I also made a change so that the function takes a BumpPtrAllocator
instead of a SpecificBumpPtrAllocator. The latter is the class to call
dtors, but since char * is trivially destructible, we should use the
former class.

Differential Revision: https://reviews.llvm.org/D45641

llvm-svn: 330216
diff --git a/llvm/lib/Support/InitLLVM.cpp b/llvm/lib/Support/InitLLVM.cpp
index c76b1bd..c008d04 100644
--- a/llvm/lib/Support/InitLLVM.cpp
+++ b/llvm/lib/Support/InitLLVM.cpp
@@ -15,7 +15,12 @@
 #include "llvm/Support/Signals.h"
 #include <string>
 
+#ifdef _WIN32
+#include "Windows/WindowsSupport.h"
+#endif
+
 using namespace llvm;
+using namespace llvm::sys;
 
 InitLLVM::InitLLVM(int &Argc, const char **&Argv) : StackPrinter(Argc, Argv) {
   sys::PrintStackTraceOnErrorSignal(Argv[0]);
@@ -33,11 +38,10 @@
   std::string Banner = std::string(Argv[0]) + ": ";
   ExitOnError ExitOnErr(Banner);
 
-  ExitOnErr(errorCodeToError(
-      sys::Process::GetArgumentVector(Args, makeArrayRef(Argv, Argc), Alloc)));
+  ExitOnErr(errorCodeToError(windows::GetCommandLineArguments(Args, Alloc)));
 
-  // GetArgumentVector doesn't terminate the vector with a nullptr.
-  // Do it to make it compatible with the real argv.
+  // GetCommandLineArguments doesn't terminate the vector with a
+  // nullptr.  Do it to make it compatible with the real argv.
   Args.push_back(nullptr);
 
   Argc = Args.size() - 1;