summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGObjCMac.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-08-04 16:57:49 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-08-04 16:57:49 +0000
commitc05349e53a8d8910f97041a7ee18d14c09e6eea3 (patch)
tree0e1d7d1157697a2cca05fa50951391a479c52625 /clang/lib/CodeGen/CGObjCMac.cpp
parenta3ed071166536b6f0d2b8290a514d5cfdbb15d61 (diff)
downloadbcm5719-llvm-c05349e53a8d8910f97041a7ee18d14c09e6eea3.tar.gz
bcm5719-llvm-c05349e53a8d8910f97041a7ee18d14c09e6eea3.zip
Some early work for providing block layout info.
for objective-c/c++ blocks (NeXt runtime). llvm-svn: 110213
Diffstat (limited to 'clang/lib/CodeGen/CGObjCMac.cpp')
-rw-r--r--clang/lib/CodeGen/CGObjCMac.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp
index 4db7ec5f9ff..b30b44ba87e 100644
--- a/clang/lib/CodeGen/CGObjCMac.cpp
+++ b/clang/lib/CodeGen/CGObjCMac.cpp
@@ -1033,6 +1033,9 @@ public:
/// forward references will be filled in with empty bodies if no
/// definition is seen. The return value has type ProtocolPtrTy.
virtual llvm::Constant *GetOrEmitProtocolRef(const ObjCProtocolDecl *PD)=0;
+ virtual llvm::Constant *GCBlockLayout(CodeGen::CodeGenFunction &CGF,
+ const llvm::SmallVectorImpl<const BlockDeclRefExpr *> &);
+
};
class CGObjCMac : public CGObjCCommonMac {
@@ -1686,6 +1689,11 @@ CGObjCCommonMac::EmitLegacyMessageSend(CodeGen::CodeGenFunction &CGF,
return CGF.EmitCall(FnInfo, Fn, Return, ActualArgs);
}
+llvm::Constant *CGObjCCommonMac::GCBlockLayout(CodeGen::CodeGenFunction &CGF,
+ const llvm::SmallVectorImpl<const BlockDeclRefExpr *> &BDRE) {
+ return llvm::Constant::getNullValue(llvm::Type::getInt8PtrTy(VMContext));
+}
+
llvm::Value *CGObjCMac::GenerateProtocolRef(CGBuilderTy &Builder,
const ObjCProtocolDecl *PD) {
// FIXME: I don't understand why gcc generates this, or where it is
OpenPOWER on IntegriCloud