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 | 2f31b33f34f569d180ab5848d0c5581c9e1f74ee (patch) | |
tree | a757f80aee24d756c8b9490caa612c66f282812d | |
parent | 443410d72287bec39e66b436b4fcccb5756a9a10 (diff) | |
download | bcm5719-llvm-2f31b33f34f569d180ab5848d0c5581c9e1f74ee.tar.gz bcm5719-llvm-2f31b33f34f569d180ab5848d0c5581c9e1f74ee.zip |
objc: more changes in use of IBOutletCollection attribute.
'Class' is disallowed as argument. If the argument is missing,
NSObject is assumed. // rdar://10296078
llvm-svn: 142409
-rw-r--r-- | clang/lib/Sema/SemaDeclAttr.cpp | 5 | ||||
-rw-r--r-- | clang/test/SemaObjC/iboutletcollection-attr.m | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index 69baf79ad0f..b83b716fdf0 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/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/clang/test/SemaObjC/iboutletcollection-attr.m b/clang/test/SemaObjC/iboutletcollection-attr.m index 052fe9fb00b..1491b3292d4 100644 --- a/clang/test/SemaObjC/iboutletcollection-attr.m +++ b/clang/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; |