Driver: Add ArgList::{append, getArgString}


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66089 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Driver/ArgList.h b/include/clang/Driver/ArgList.h
index 9eefa8a..c4f3bbc 100644
--- a/include/clang/Driver/ArgList.h
+++ b/include/clang/Driver/ArgList.h
@@ -48,6 +48,12 @@
 
     const_iterator begin() const { return Args.begin(); }
     const_iterator end() const { return Args.end(); }
+    
+    /// append - Append \arg A to the arg list, taking ownership.
+    void append(Arg *A);
+
+    /// getArgString - Return the input argument string at \arg Index.
+    const char *getArgString(unsigned Index) const { return ArgStrings[Index]; }
   };
 } // end namespace driver
 } // end namespace clang
diff --git a/lib/Driver/ArgList.cpp b/lib/Driver/ArgList.cpp
index a8b00bb..a45e9d6 100644
--- a/lib/Driver/ArgList.cpp
+++ b/lib/Driver/ArgList.cpp
@@ -9,6 +9,7 @@
 
 #include "clang/Driver/ArgList.h"
 #include "clang/Driver/Arg.h"
+#include "clang/Driver/Option.h"
 
 using namespace clang::driver;
 
@@ -20,3 +21,11 @@
   for (iterator it = begin(), ie = end(); it != ie; ++ie)
     delete *it;
 }
+
+void ArgList::append(Arg *A) {
+  if (A->getOption().isUnsupported()) {
+    assert(0 && "FIXME: unsupported unsupported.");
+  }
+
+  Args.push_back(A);
+}