diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2012-11-01 18:32:55 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-11-01 18:32:55 +0000 |
commit | 23290b0570e085739f7e783dabefc5fef120657a (patch) | |
tree | ce260d5409ed7e72066fc0ae38aa1c8649f8ea71 /clang/lib/CodeGen/CGBlocks.h | |
parent | 2edbc86809454ff66ccfd2737e7fd3dbe5343c84 (diff) | |
download | bcm5719-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.h | 5 |
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; |