summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGObjCMac.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-06-22 16:33:55 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-06-22 16:33:55 +0000
commit7966aff294017cd05ab1c3c1ba8967bf5b8b2150 (patch)
treeef253ae4548b5ab997bae6a3e934da12638692a3 /clang/lib/CodeGen/CGObjCMac.cpp
parentea836bc41c850d206f3bc19e5089de77baecfbb3 (diff)
downloadbcm5719-llvm-7966aff294017cd05ab1c3c1ba8967bf5b8b2150.tar.gz
bcm5719-llvm-7966aff294017cd05ab1c3c1ba8967bf5b8b2150.zip
Fixes a problem in generation of meta-data for
category implementation whereby property list was missing. NeXt ObjC runtime (radar 8093297). llvm-svn: 106550
Diffstat (limited to 'clang/lib/CodeGen/CGObjCMac.cpp')
-rw-r--r--clang/lib/CodeGen/CGObjCMac.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp
index 801b1f2c18e..fb3bec5ad8c 100644
--- a/clang/lib/CodeGen/CGObjCMac.cpp
+++ b/clang/lib/CodeGen/CGObjCMac.cpp
@@ -1931,10 +1931,18 @@ llvm::Constant *CGObjCCommonMac::EmitPropertyList(llvm::Twine Name,
Properties.push_back(llvm::ConstantStruct::get(ObjCTypes.PropertyTy,
Prop));
}
- if (const ObjCInterfaceDecl *OID = dyn_cast<ObjCInterfaceDecl>(OCD))
+ if (const ObjCInterfaceDecl *OID = dyn_cast<ObjCInterfaceDecl>(OCD)) {
for (ObjCInterfaceDecl::protocol_iterator P = OID->protocol_begin(),
E = OID->protocol_end(); P != E; ++P)
- PushProtocolProperties(PropertySet, Properties, Container, (*P), ObjCTypes);
+ PushProtocolProperties(PropertySet, Properties, Container, (*P),
+ ObjCTypes);
+ }
+ else if (const ObjCCategoryDecl *CD = dyn_cast<ObjCCategoryDecl>(OCD)) {
+ for (ObjCCategoryDecl::protocol_iterator P = CD->protocol_begin(),
+ E = CD->protocol_end(); P != E; ++P)
+ PushProtocolProperties(PropertySet, Properties, Container, (*P),
+ ObjCTypes);
+ }
// Return null for empty list.
if (Properties.empty())
OpenPOWER on IntegriCloud