diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2011-10-18 19:54:31 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-10-18 19:54:31 +0000 |
commit | f4072ae44b70a7ac234c47c146157fee75437e38 (patch) | |
tree | 1be2cc78cb79030b67d3d58c48a051d0ae60825b | |
parent | 44679012052b0d57f26a3aa141004687cb71a551 (diff) |
objc: more changes in use of IBOutletCollection attribute.
'Class' is disallowed as argument. If the argument is missing,
NSObject is assumed. // rdar://10296078
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142409 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Sema/SemaDeclAttr.cpp | 5 | ||||
-rw-r--r-- | test/SemaObjC/iboutletcollection-attr.m | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/Sema/SemaDeclAttr.cpp b/lib/Sema/SemaDeclAttr.cpp index 69baf79ad0..b83b716fdf 100644 --- a/lib/Sema/SemaDeclAttr.cpp +++ b/lib/Sema/SemaDeclAttr.cpp @@ -805,7 +805,7 @@ static void handleIBOutletCollection(Sema &S, Decl *D, IdentifierInfo *II = Attr.getParameterName(); if (!II) - II = &S.Context.Idents.get("id"); + II = &S.Context.Idents.get("NSObject"); ParsedType TypeRep = S.getTypeName(*II, Attr.getLoc(), S.getScopeForContext(D->getDeclContext()->getParent())); @@ -818,8 +818,7 @@ static void handleIBOutletCollection(Sema &S, Decl *D, // FIXME. Gnu attribute extension ignores use of builtin types in // attributes. So, __attribute__((iboutletcollection(char))) will be // treated as __attribute__((iboutletcollection())). - if (!QT->isObjCIdType() && !QT->isObjCClassType() && - !QT->isObjCObjectType()) { + if (!QT->isObjCIdType() && !QT->isObjCObjectType()) { S.Diag(Attr.getLoc(), diag::err_iboutletcollection_type) << II; return; } diff --git a/test/SemaObjC/iboutletcollection-attr.m b/test/SemaObjC/iboutletcollection-attr.m index 052fe9fb00..1491b3292d 100644 --- a/test/SemaObjC/iboutletcollection-attr.m +++ b/test/SemaObjC/iboutletcollection-attr.m @@ -2,6 +2,8 @@ // RUN: %clang_cc1 -x objective-c++ -fsyntax-only -verify %s // rdar://8308053 +@class NSObject; + @interface I { __attribute__((iboutletcollection(I))) id ivar1; __attribute__((iboutletcollection(id))) id ivar2; |