From 42f05409f6c9e86d0cbec2912df05d59a8e4acd0 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264196 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Sema/SemaObjCProperty.cpp | 5 +++++ test/SemaObjC/objc-class-property.m | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/lib/Sema/SemaObjCProperty.cpp b/lib/Sema/SemaObjCProperty.cpp index 3f8799ae9a..322469499f 100644 --- a/lib/Sema/SemaObjCProperty.cpp +++ b/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/test/SemaObjC/objc-class-property.m b/test/SemaObjC/objc-class-property.m index 0058ee3648..37a8178ceb 100644 --- a/test/SemaObjC/objc-class-property.m +++ b/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.40.0