Updates for LLVM merge to r171906 on 20130108.

Change-Id: I4cf3718041d8876d4a23a412b6b4fa4226ec3b50
diff --git a/llvm-rs-cc.cpp b/llvm-rs-cc.cpp
index 1e60c6e..cc77b7a 100644
--- a/llvm-rs-cc.cpp
+++ b/llvm-rs-cc.cpp
@@ -27,7 +27,7 @@
 #include "clang/Driver/Option.h"
 #include "clang/Driver/OptTable.h"
 
-#include "clang/Frontend/DiagnosticOptions.h"
+#include "clang/Basic/DiagnosticOptions.h"
 #include "clang/Frontend/TextDiagnosticPrinter.h"
 #include "clang/Frontend/Utils.h"
 
@@ -75,19 +75,31 @@
 
 enum {
   OPT_INVALID = 0,  // This is not an option ID.
-#define OPTION(NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \
+#define PREFIX(NAME, VALUE)
+#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \
                HELPTEXT, METAVAR) OPT_##ID,
 #include "RSCCOptions.inc"
   LastOption
 #undef OPTION
+#undef PREFIX
 };
 
-static const OptTable::Info RSCCInfoTable[] = {
-#define OPTION(NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \
-               HELPTEXT, METAVAR)   \
-  { NAME, HELPTEXT, METAVAR, Option::KIND##Class, PARAM, FLAGS, \
-    OPT_##GROUP, OPT_##ALIAS },
+#define PREFIX(NAME, VALUE) const char *const NAME[] = VALUE;
+#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \
+               HELPTEXT, METAVAR)
 #include "RSCCOptions.inc"
+#undef OPTION
+#undef PREFIX
+
+static const OptTable::Info RSCCInfoTable[] = {
+#define PREFIX(NAME, VALUE)
+#define OPTION(PREFIX, NAME, ID, KIND, GROUP, ALIAS, FLAGS, PARAM, \
+               HELPTEXT, METAVAR)   \
+  { PREFIX, NAME, HELPTEXT, METAVAR, OPT_##ID, Option::KIND##Class, PARAM, \
+    FLAGS, OPT_##GROUP, OPT_##ALIAS },
+#include "RSCCOptions.inc"
+#undef OPTION
+#undef PREFIX
 };
 
 class RSCCOptTable : public OptTable {
@@ -202,7 +214,7 @@
         it != ie; ++it) {
       const Arg *A = *it;
       if (A->getOption().getKind() == Option::InputClass)
-        Inputs.push_back(A->getValue(*Args));
+        Inputs.push_back(A->getValue());
     }
 
     Opts.mIncludePaths = Args->getAllArgValues(OPT_I);
@@ -403,7 +415,9 @@
   llvm::IntrusiveRefCntPtr<clang::DiagnosticIDs> DiagIDs(
     new clang::DiagnosticIDs());
 
-  clang::DiagnosticsEngine DiagEngine(DiagIDs, DiagClient, true);
+  llvm::IntrusiveRefCntPtr<clang::DiagnosticOptions> DiagOpts(
+    new clang::DiagnosticOptions());
+  clang::DiagnosticsEngine DiagEngine(DiagIDs, &*DiagOpts, DiagClient, true);
 
   slang::Slang::GlobalInitialization();