From: Chris Lattner Date: Mon, 21 Jul 2008 04:13:58 +0000 (+0000) Subject: minor rename, also, reject pointer to qualified id. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0b6d1e6070394f2a5d6a600351f0e8c3fd371119;p=clang minor rename, also, reject pointer to qualified id. id* is not an "objc pointer type", id is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53820 91177308-0d34-0410-b5e6-96231b3b80d8 --- 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

, 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) {