summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBlocks.h
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-11-01 18:32:55 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-11-01 18:32:55 +0000
commit23290b0570e085739f7e783dabefc5fef120657a (patch)
treece260d5409ed7e72066fc0ae38aa1c8649f8ea71 /clang/lib/CodeGen/CGBlocks.h
parent2edbc86809454ff66ccfd2737e7fd3dbe5343c84 (diff)
downloadbcm5719-llvm-23290b0570e085739f7e783dabefc5fef120657a.tar.gz
bcm5719-llvm-23290b0570e085739f7e783dabefc5fef120657a.zip
objective-C block meta-data. This patch completes meta-data
generation for captured block variables in arc mode. This includes inlined version of the meta-data when it can be done. It also includes severat tests. This is wip. // rdar://12184410. llvm-svn: 167241
Diffstat (limited to 'clang/lib/CodeGen/CGBlocks.h')
-rw-r--r--clang/lib/CodeGen/CGBlocks.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBlocks.h b/clang/lib/CodeGen/CGBlocks.h
index 690fa8b05e6..62635623857 100644
--- a/clang/lib/CodeGen/CGBlocks.h
+++ b/clang/lib/CodeGen/CGBlocks.h
@@ -59,6 +59,7 @@ enum BlockByrefFlags {
};
enum BlockLiteralFlags {
+ BLOCK_HAS_EXTENDED_LAYOUT = (1 << 23),
BLOCK_HAS_COPY_DISPOSE = (1 << 25),
BLOCK_HAS_CXX_OBJ = (1 << 26),
BLOCK_IS_GLOBAL = (1 << 28),
@@ -193,6 +194,10 @@ public:
/// UsesStret : True if the block uses an stret return. Mutable
/// because it gets set later in the block-creation process.
mutable bool UsesStret : 1;
+
+ /// HasCapturedVariableLayout : True if block has captured variables
+ /// and their layout meta-data has been generated.
+ bool HasCapturedVariableLayout : 1;
/// The mapping of allocated indexes within the block.
llvm::DenseMap<const VarDecl*, Capture> Captures;
OpenPOWER on IntegriCloud