prep work for copy/destroy helpers for block literals.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66159 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGBlocks.h b/lib/CodeGen/CGBlocks.h
index 3b9cc50..24b0cc9 100644
--- a/lib/CodeGen/CGBlocks.h
+++ b/lib/CodeGen/CGBlocks.h
@@ -110,6 +110,7 @@
 
 class BlockFunction : public BlockBase {
   CodeGenModule &CGM;
+  ASTContext &getContext() const;
 
 public:
   const llvm::Type *PtrToInt8Ty;
@@ -160,6 +161,14 @@
 
   llvm::Value *getBlockObjectDispose();
   void BuildBlockRelease(const VarDecl &D, llvm::Value *DeclPtr);
+
+  bool BlockRequiresCopying(QualType Ty) {
+    if (Ty->isBlockPointerType())
+      return true;
+    if (getContext().isObjCNSObjectType(Ty))
+      return true;
+    return false;
+  }
 };
 
 }  // end namespace CodeGen