From 2e050f11c49e385ad6d5f5d91a6045f482bbdb77 Mon Sep 17 00:00:00 2001 From: Fariborz Jahanian Date: Thu, 12 Mar 2009 22:34:11 +0000 Subject: [PATCH] Use paropery's setter attribute name as the selector for the property setter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66834 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Parse/ParseObjc.cpp | 14 +++++++------- test/CodeGenObjC/property-setter-attr.m | 10 ++++++++++ 2 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 test/CodeGenObjC/property-setter-attr.m diff --git a/lib/Parse/ParseObjc.cpp b/lib/Parse/ParseObjc.cpp index 293fe257cc..bb85536cd4 100644 --- a/lib/Parse/ParseObjc.cpp +++ b/lib/Parse/ParseObjc.cpp @@ -327,13 +327,13 @@ void Parser::ParseObjCInterfaceDeclList(DeclTy *interfaceDecl, Selector GetterSel = PP.getSelectorTable().getNullarySelector(SelName); IdentifierInfo *SetterName = OCDS.getSetterName(); - if (!SetterName) - SetterName = FD.D.getIdentifier(); - - Selector SetterSel = - SelectorTable::constructSetterName(PP.getIdentifierTable(), - PP.getSelectorTable(), - SetterName); + Selector SetterSel; + if (SetterName) + SetterSel = PP.getSelectorTable().getSelector(1, &SetterName); + else + SetterSel = SelectorTable::constructSetterName(PP.getIdentifierTable(), + PP.getSelectorTable(), + FD.D.getIdentifier()); bool isOverridingProperty = false; DeclTy *Property = Actions.ActOnProperty(CurScope, AtLoc, FD, OCDS, GetterSel, SetterSel, diff --git a/test/CodeGenObjC/property-setter-attr.m b/test/CodeGenObjC/property-setter-attr.m new file mode 100644 index 0000000000..edc80554cd --- /dev/null +++ b/test/CodeGenObjC/property-setter-attr.m @@ -0,0 +1,10 @@ +// RUN: clang -emit-llvm -triple=i686-apple-darwin8 -o %t %s +// RUN: grep -e "SiSetOtherThings:" %t + +@interface A +@property(setter=iSetOtherThings:) int otherThings; +@end + +@implementation A +@dynamic otherThings; +@end -- 2.50.1