--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/components/llvm/patches/018-21870283-llvm-GetArgumentVector.patch Wed Feb 10 11:54:12 2016 -0800
@@ -0,0 +1,49 @@
+# 21870283 - llvm::sys::Process::GetArgumentVector should overload
+# for std::vector
+# For upstream - maybe.
+--- include/llvm/Support/Process.h 2014-12-04 08:59:36.000000000 -0800
++++ include/llvm/Support/Process.h 2015-09-20 16:56:49.207515143 -0700
+@@ -81,20 +81,26 @@
+ const std::string& FileName);
+
+ /// This function returns a SmallVector containing the arguments passed from
+ /// the operating system to the program. This function expects to be handed
+ /// the vector passed in from main.
+ static std::error_code
+ GetArgumentVector(SmallVectorImpl<const char *> &Args,
+ ArrayRef<const char *> ArgsFromMain,
+ SpecificBumpPtrAllocator<char> &ArgAllocator);
+
++ /// Overload the above for a std::vector, and without the
++ // useless SpecificBumpPtrAllocator argument.
++ static std::error_code
++ GetArgumentVector(std::vector<const char *> &ArgsOut,
++ ArrayRef<const char *> ArgsIn);
++
+ // This functions ensures that the standard file descriptors (input, output,
+ // and error) are properly mapped to a file descriptor before we use any of
+ // them. This should only be called by standalone programs, library
+ // components should not call this.
+ static std::error_code FixupStandardFileDescriptors();
+
+ // This function safely closes a file descriptor. It is not safe to retry
+ // close(2) when it returns with errno equivalent to EINTR; this is because
+ // *nixen cannot agree if the file descriptor is, in fact, closed when this
+ // occurs.
+--- lib/Support/Unix/Process.inc 2014-12-04 08:59:36.000000000 -0800
++++ lib/Support/Unix/Process.inc 2015-09-20 17:11:29.527153186 -0700
+@@ -180,6 +180,14 @@
+ return std::error_code();
+ }
+
++std::error_code
++Process::GetArgumentVector(std::vector<const char *> &ArgsOut,
++ ArrayRef<const char *> ArgsIn) {
++ ArgsOut.insert(ArgsOut.end(), ArgsIn.begin(), ArgsIn.end());
++
++ return std::error_code();
++}
++
+ namespace {
+ class FDCloser {
+ public: