More work to integrate newly added ObjCQualifiedClassType into the type system.

This is necessary 'plumbing' to fix <rdar://problem/6497631> Message lookup is sometimes different than gcc's.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65248 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp
index cdd61cd..605f46b 100644
--- a/lib/AST/ASTContext.cpp
+++ b/lib/AST/ASTContext.cpp
@@ -2408,7 +2408,7 @@
 /// to struct), Interface* (pointer to ObjCInterfaceType) and id<P> (qualified
 /// ID type).
 bool ASTContext::isObjCObjectPointerType(QualType Ty) const {
-  if (Ty->isObjCQualifiedIdType())
+  if (Ty->isObjCQualifiedIdType() || Ty->isObjCQualifiedClassType())
     return true;
   
   // Blocks are objects.
diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp
index ba8b463..065b626 100644
--- a/lib/AST/Type.cpp
+++ b/lib/AST/Type.cpp
@@ -693,7 +693,8 @@
          isa<BlockPointerType>(CanonicalType) ||
          isa<MemberPointerType>(CanonicalType) ||
          isa<ComplexType>(CanonicalType) ||
-         isa<ObjCQualifiedIdType>(CanonicalType);
+         isa<ObjCQualifiedIdType>(CanonicalType) ||
+         isa<ObjCQualifiedClassType>(CanonicalType);
 }
 
 /// \brief Determines whether the type is a C++ aggregate type or C