Revert r166223 and the subsequent commits that depend on it, r166230 & r166235.

This seems to have introduced assertion hit when building compiler-rt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166245 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index 59cebf5..f747621 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -98,7 +98,7 @@
   for (ArgList::const_iterator it = Args->begin(), ie = Args->end();
        it != ie; ++it) {
     Arg *A = *it;
-    if (A->getOption().hasFlag(options::Unsupported)) {
+    if (A->getOption().isUnsupported()) {
       Diag(clang::diag::err_drv_unsupported_opt) << A->getAsString(*Args);
       continue;
     }
@@ -1033,7 +1033,7 @@
       } else
         Inputs.push_back(std::make_pair(Ty, A));
 
-    } else if (A->getOption().hasFlag(options::LinkerInput)) {
+    } else if (A->getOption().isLinkerInput()) {
       // Just treat as object type, we could make a special type for this if
       // necessary.
       Inputs.push_back(std::make_pair(types::TY_Object, A));
@@ -1300,7 +1300,7 @@
     // DiagnosticsEngine, so that extra values, position, and so on could be
     // printed.
     if (!A->isClaimed()) {
-      if (A->getOption().hasFlag(options::NoArgumentUnused))
+      if (A->getOption().hasNoArgumentUnused())
         continue;
 
       // Suppress the warning automatically if this is just a flag, and it is an