From 22e684a148c566dc72dad4a0eef5e2431e7303ea Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 21 Jul 2008 04:03:34 +0000 Subject: [PATCH] simplify this predicate, only checking isObjCQualifiedIdType once. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53817 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/Sema.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp index 0e1a8ee56e..52858cb893 100644 --- a/lib/Sema/Sema.cpp +++ b/lib/Sema/Sema.cpp @@ -26,18 +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 +/// to an object type; such as "id", "Class", Intf*, id

, etc. bool Sema::isObjCObjectPointerType(QualType type) const { - if (!type->isPointerType() && !type->isObjCQualifiedIdType()) + if (type->isObjCQualifiedIdType()) + return true; + + if (!type->isPointerType()) return false; - if (type == Context.getObjCIdType() || type == Context.getObjCClassType() || - type->isObjCQualifiedIdType()) + + if (type == Context.getObjCIdType() || type == Context.getObjCClassType()) return true; if (type->isPointerType()) { PointerType *pointerType = static_cast(type.getTypePtr()); type = pointerType->getPointeeType(); } - return (type->isObjCInterfaceType() || type->isObjCQualifiedIdType()); + return type->isObjCInterfaceType() || type->isObjCQualifiedIdType(); } void Sema::ActOnTranslationUnitScope(SourceLocation Loc, Scope *S) { -- 2.40.0