diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-08-04 16:57:49 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-08-04 16:57:49 +0000 |
commit | c05349e53a8d8910f97041a7ee18d14c09e6eea3 (patch) | |
tree | 0e1d7d1157697a2cca05fa50951391a479c52625 /clang/lib/CodeGen/CGObjCMac.cpp | |
parent | a3ed071166536b6f0d2b8290a514d5cfdbb15d61 (diff) | |
download | bcm5719-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.cpp | 8 |
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 |