]> granicus.if.org Git - clang/commitdiff
When creating a property in a class extension, make sure to check its
authorDouglas Gregor <dgregor@apple.com>
Fri, 15 Jul 2011 15:30:21 +0000 (15:30 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 15 Jul 2011 15:30:21 +0000 (15:30 +0000)
attributes. Fixes <rdar://problem/9561076>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135273 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaObjCProperty.cpp
test/Index/c-index-api-loadTU-test.m

index 842d61429460115a9d6a9821cc6ef0af444cae25..d826ea8d84a41ef90ac62517f51b154c5ad36964 100644 (file)
@@ -179,6 +179,7 @@ Sema::HandlePropertyInClassExtension(Scope *S, ObjCCategoryDecl *CDecl,
   // Set setter/getter selector name. Needed later.
   PDecl->setGetterName(GetterSel);
   PDecl->setSetterName(SetterSel);
+  ProcessDeclAttributes(S, PDecl, FD.D);
   DC->addDecl(PDecl);
 
   // We need to look in the @interface to see if the @property was
index 98a41d837fdc0a6d428c541bedcec7cebf03c43b..ab5f9a9ed6f9bc59a101d494daaa22298dac7370 100644 (file)
@@ -70,6 +70,11 @@ typedef struct X0 X1;
 struct X0;
 struct X0  {};
 
+@interface TestAttributes()
+// <rdar://problem/9561076>
+@property (retain) IBOutlet id anotherOutlet;
+@end
+
 // CHECK: c-index-api-loadTU-test.m:4:12: ObjCInterfaceDecl=Foo:4:12 Extent=[4:1 - 12:5]
 // CHECK: c-index-api-loadTU-test.m:6:32: ObjCIvarDecl=myoutlet:6:32 (Definition) Extent=[6:3 - 6:40]
 // CHECK: <invalid loc>:0:0: attribute(iboutlet)=
@@ -150,3 +155,9 @@ struct X0  {};
 // CHECK: c-index-api-loadTU-test.m:70:8: StructDecl=X0:70:8 Extent=[70:1 - 70:10]
 // CHECK: c-index-api-loadTU-test.m:71:8: StructDecl=X0:71:8 (Definition) Extent=[71:1 - 71:14]
 
+// CHECK: <invalid loc>:0:0: attribute(iboutlet)=
+// CHECK: c-index-api-loadTU-test.m:75:29: TypeRef=id:0:0 Extent=[75:29 - 75:31]
+// CHECK: c-index-api-loadTU-test.m:75:32: ObjCInstanceMethodDecl=anotherOutlet:75:32 Extent=[75:32 - 75:45]
+// CHECK: c-index-api-loadTU-test.m:75:32: ObjCInstanceMethodDecl=setAnotherOutlet::75:32 Extent=[75:32 - 75:45]
+// CHECK: c-index-api-loadTU-test.m:75:32: ParmDecl=anotherOutlet:75:32 (Definition) Extent=[75:32 - 75:45]
+