Add a very basic implemenation of global blocks. This needs to be cleaned up.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64387 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index f6196fe..ce4a424 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -243,6 +243,18 @@
void GenerateObjCSetter(ObjCImplementationDecl *IMP,
const ObjCPropertyImplDecl *PID);
+ struct BlockInfo {
+ const llvm::Type *BlockLiteralTy;
+
+ const char *NameSuffix;
+
+ BlockInfo(const llvm::Type *blt, const char *ns)
+ : BlockLiteralTy(blt), NameSuffix(ns) {}
+ };
+
+ llvm::Function *GenerateBlockFunction(const BlockExpr *Expr,
+ const BlockInfo& Info);
+
void GenerateCode(const FunctionDecl *FD,
llvm::Function *Fn);
void StartFunction(const Decl *D, QualType RetTy,