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;
}