Add option for AddAllArgsTranslated to control whether output argument
should be joined or separate.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70101 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/ArgList.cpp b/lib/Driver/ArgList.cpp
index 7823673..593694c 100644
--- a/lib/Driver/ArgList.cpp
+++ b/lib/Driver/ArgList.cpp
@@ -124,14 +124,22 @@
 }
 
 void ArgList::AddAllArgsTranslated(ArgStringList &Output, options::ID Id0,
-                                   const char *Translation) const {
+                                   const char *Translation,
+                                   bool Joined) const {
   // FIXME: Make fast.
   for (const_iterator it = begin(), ie = end(); it != ie; ++it) {
     const Arg *A = *it;
     if (A->getOption().matches(Id0)) {
       A->claim();
-      Output.push_back(Translation);
-      Output.push_back(A->getValue(*this, 0));
+
+      if (Joined) {
+        std::string Value = Translation;
+        Value += A->getValue(*this, 0);
+        Output.push_back(MakeArgString(Value.c_str()));
+      } else {
+        Output.push_back(Translation);
+        Output.push_back(A->getValue(*this, 0));
+      }
     }
   }
 }