summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/lib/Sema/SemaObjCProperty.cpp5
-rw-r--r--clang/test/SemaObjC/objc-class-property.m8
2 files changed, 13 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaObjCProperty.cpp b/clang/lib/Sema/SemaObjCProperty.cpp
index 3f8799ae9a6..322469499f1 100644
--- a/clang/lib/Sema/SemaObjCProperty.cpp
+++ b/clang/lib/Sema/SemaObjCProperty.cpp
@@ -2308,6 +2308,11 @@ void Sema::ProcessPropertyDecl(ObjCPropertyDecl *property) {
AddInstanceMethodToGlobalPool(GetterMethod);
if (SetterMethod)
AddInstanceMethodToGlobalPool(SetterMethod);
+ } else {
+ if (GetterMethod)
+ AddFactoryMethodToGlobalPool(GetterMethod);
+ if (SetterMethod)
+ AddFactoryMethodToGlobalPool(SetterMethod);
}
ObjCInterfaceDecl *CurrentClass = dyn_cast<ObjCInterfaceDecl>(CD);
diff --git a/clang/test/SemaObjC/objc-class-property.m b/clang/test/SemaObjC/objc-class-property.m
index 0058ee3648b..37a8178ceb6 100644
--- a/clang/test/SemaObjC/objc-class-property.m
+++ b/clang/test/SemaObjC/objc-class-property.m
@@ -33,3 +33,11 @@ int test() {
A *a = [[A alloc] init];
return a.x + A.c;
}
+
+void message_id(id me) {
+ [me y];
+}
+
+void message_class(Class me) {
+ [me c2];
+}
OpenPOWER on IntegriCloud