diff options
author | Chris Lattner <sabre@nondot.org> | 2008-07-21 04:13:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-07-21 04:13:58 +0000 |
commit | 0b6d1e6070394f2a5d6a600351f0e8c3fd371119 (patch) | |
tree | 4072c20773f8704d91d89c4c2d6c9f705b7a0f4b | |
parent | 17af2a62f31ec9e09c4df20873a717bb5f0ad99e (diff) |
minor rename, also, reject pointer to qualified id.
id<NSCopyable>* is not an "objc pointer type", id<NSCopyable> is.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53820 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/Sema.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp index 4d1a053779..478763190a 100644 --- a/lib/Sema/Sema.cpp +++ b/lib/Sema/Sema.cpp @@ -26,24 +26,23 @@ bool Sema::isBuiltinObjCType(TypedefDecl *TD) { strcmp(typeName, "SEL") == 0 || strcmp(typeName, "Protocol") == 0; } -/// isObjCObjectPointerType - Returns true if type is an objective-c pointer +/// isObjCObjectPointerType - Returns true if type is an Objective-C pointer /// to an object type; such as "id", "Class", Intf*, id<P>, etc. -bool Sema::isObjCObjectPointerType(QualType type) const { - if (type->isObjCQualifiedIdType()) +bool Sema::isObjCObjectPointerType(QualType Ty) const { + if (Ty->isObjCQualifiedIdType()) return true; - if (!type->isPointerType()) + if (!Ty->isPointerType()) return false; // Check to see if this is 'id' or 'Class', both of which are typedefs for // pointer types. This looks for the typedef specifically, not for the // underlying type. - if (type == Context.getObjCIdType() || type == Context.getObjCClassType()) + if (Ty == Context.getObjCIdType() || Ty == Context.getObjCClassType()) return true; - const PointerType *pointerType = type->getAsPointerType(); - type = pointerType->getPointeeType(); - return type->isObjCInterfaceType() || type->isObjCQualifiedIdType(); + // If this a pointer to an interface (e.g. NSString*), it is ok. + return Ty->getAsPointerType()->getPointeeType()->isObjCInterfaceType(); } void Sema::ActOnTranslationUnitScope(SourceLocation Loc, Scope *S) { |