aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGBlocks.cpp
diff options
context:
space:
mode:
authorMike Stump <mrs@apple.com>2009-03-25 18:05:39 +0000
committerMike Stump <mrs@apple.com>2009-03-25 18:05:39 +0000
commit4927abdc2e8c630117261fd9266304290b1cf32f (patch)
treef6ed265c4d4070f6b64d58f37081f8dee2fe3e20 /lib/CodeGen/CGBlocks.cpp
parenta803b0e6ca0d1c71a0b3f5d7380da8bbacf2f983 (diff)
Remove -f__block as codegen for __block variables should be solid.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67697 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGBlocks.cpp')
-rw-r--r--lib/CodeGen/CGBlocks.cpp22
1 files changed, 0 insertions, 22 deletions
diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp
index eba741bc3c..db1539bd63 100644
--- a/lib/CodeGen/CGBlocks.cpp
+++ b/lib/CodeGen/CGBlocks.cpp
@@ -25,14 +25,6 @@ using namespace CodeGen;
// Temporary code to enable testing of __block variables
// #include "clang/Frontend/CompileOptions.h"
#include "llvm/Support/CommandLine.h"
-static llvm::cl::opt<bool>
-Enable__block("f__block",
- // See all the FIXMEs for the various work that needs to be done
- llvm::cl::desc("temporary option to turn on __block precessing "
- "even though the code isn't done yet"),
- llvm::cl::ValueDisallowed, llvm::cl::AllowInverse,
- llvm::cl::ZeroOrMore,
- llvm::cl::init(true));
llvm::Constant *CodeGenFunction::
BuildDescriptorBlockDecl(bool BlockHasCopyDispose, uint64_t Size,
@@ -166,9 +158,6 @@ llvm::Value *CodeGenFunction::BuildBlockLiteralTmp(const BlockExpr *BE) {
BlockHasCopyDispose |= subBlockHasCopyDispose;
Elts[3] = Fn;
- if (!Enable__block && BlockHasCopyDispose)
- ErrorUnsupported(BE, "block literal that requires copy/dispose");
-
if (subBlockHasCopyDispose)
flags |= BLOCK_HAS_COPY_DISPOSE;
@@ -488,17 +477,6 @@ llvm::Value *CodeGenFunction::GetAddrOfBlockDecl(const BlockDeclRefExpr *E) {
const llvm::Type *Ty;
Ty = CGM.getTypes().ConvertType(E->getDecl()->getType());
- if (!Enable__block && E->isByRef())
- ErrorUnsupported(E, "__block variable in block literal");
- else if (!Enable__block && E->getType()->isBlockPointerType())
- ErrorUnsupported(E, "block pointer in block literal");
- else if (!Enable__block && (E->getDecl()->getAttr<ObjCNSObjectAttr>() ||
- getContext().isObjCNSObjectType(E->getType())))
- ErrorUnsupported(E, "__attribute__((NSObject)) variable in block "
- "literal");
- else if (!Enable__block && getContext().isObjCObjectPointerType(E->getType()))
- ErrorUnsupported(E, "Objective-C variable in block literal");
-
// See if we have already allocated an offset for this variable.
if (offset == 0) {
// Don't run the expensive check, unless we have to.