Generate the helper function for blocks.  Now basic codegen is
starting to work for blocks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64570 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CodeGenFunction.h b/lib/CodeGen/CodeGenFunction.h
index ff50585..038db1b 100644
--- a/lib/CodeGen/CodeGenFunction.h
+++ b/lib/CodeGen/CodeGenFunction.h
@@ -88,7 +88,7 @@
   const llvm::Type *LLVMIntTy;
   uint32_t LLVMPointerWidth;
 
-  llvm::Constant *BuildBlockLiteralTmp();
+  llvm::Constant *BuildBlockLiteralTmp(const BlockExpr *);
   llvm::Constant *BuildDescriptorBlockDecl();
 
 public:
@@ -250,13 +250,16 @@
   void GenerateObjCSetter(ObjCImplementationDecl *IMP,
                           const ObjCPropertyImplDecl *PID);
 
+  /// BlockInfo - Information to generate a block literal.
   struct BlockInfo {
+    /// BlockLiteralTy - The type of the block literal.
     const llvm::Type *BlockLiteralTy;
-    
-    const char *NameSuffix;
 
-    BlockInfo(const llvm::Type *blt, const char *ns) 
-      :  BlockLiteralTy(blt), NameSuffix(ns) {}
+    /// Name - the name of the function this block was created for, if any
+    std::string Name;
+
+    BlockInfo(const llvm::Type *blt, std::string n)
+      : BlockLiteralTy(blt), Name(n) {}
   };
   
   llvm::Function *GenerateBlockFunction(const BlockExpr *Expr,