From 15325f80af09c5f614e698b806d6bb0dd7e4237f Mon Sep 17 00:00:00 2001 From: Manman Ren Date: Wed, 23 Mar 2016 21:39:31 +0000 Subject: [PATCH] ObjC: add getter/setter for class properties to global pool. rdar://problem/25323072 llvm-svn: 264196 --- clang/lib/Sema/SemaObjCProperty.cpp | 5 +++++ clang/test/SemaObjC/objc-class-property.m | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/clang/lib/Sema/SemaObjCProperty.cpp b/clang/lib/Sema/SemaObjCProperty.cpp index 3f8799a..3224694 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(CD); diff --git a/clang/test/SemaObjC/objc-class-property.m b/clang/test/SemaObjC/objc-class-property.m index 0058ee3..37a8178 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]; +} -- 2.7.4