Driver: Some minor bug fixes.
 - language recognition was recognizing prefixes incorrectly.
 - -x none wasn't working.
 - test for "can lipo" was backwords.
 - missed a '"' in -ccc-print-phases


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66911 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index fcfa9ad..b48d01c 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -243,7 +243,7 @@
   
   os << Action::getClassName(A->getKind()) << ", ";
   if (InputAction *IA = dyn_cast<InputAction>(A)) {    
-    os << IA->getInputArg().getValue(Args) << "\"";
+    os << "\"" << IA->getInputArg().getValue(Args) << "\"";
   } else if (BindArchAction *BIA = dyn_cast<BindArchAction>(A)) {
     os << "\"" << BIA->getArchName() << "\", "
        << "{" << PrintActions1(Args, *BIA->begin(), Ids) << "}";
@@ -326,7 +326,7 @@
     // include the arch, which would also fix
     // -save-temps. Compatibility wins for now.
 
-    if (Archs.size() > 1 && types::canLipoType(Act->getType()))
+    if (Archs.size() > 1 && !types::canLipoType(Act->getType()))
       Diag(clang::diag::err_drv_invalid_output_with_multiple_archs)
         << types::getTypeName(Act->getType());
 
diff --git a/lib/Driver/Types.cpp b/lib/Driver/Types.cpp
index 96d76dd..cef5c81 100644
--- a/lib/Driver/Types.cpp
+++ b/lib/Driver/Types.cpp
@@ -122,7 +122,7 @@
   for (unsigned i=0; i<numTypes; ++i) {
     types::ID Id = (types::ID) (i + 1);
     if (canTypeBeUserSpecified(Id) && 
-        memcmp(Name, getInfo(Id).Name, N) == 0)
+        memcmp(Name, getInfo(Id).Name, N + 1) == 0)
       return Id;
   }