summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGBlocks.h
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2012-10-26 01:13:38 +0000
committerFariborz Jahanian <fjahanian@apple.com>2012-10-26 01:13:38 +0000
commit77599ce80927ddc0d68db5d99e55917437ed5b41 (patch)
treefe91fac117d571eb81eabdc26d84ea4e9159e2a4 /clang/lib/CodeGen/CGBlocks.h
parenta339e47689d55dd89147de816d31f8f2e682cdb5 (diff)
downloadbcm5719-llvm-77599ce80927ddc0d68db5d99e55917437ed5b41.tar.gz
bcm5719-llvm-77599ce80927ddc0d68db5d99e55917437ed5b41.zip
Declare type of flags to be used in a __block (byref)
variable descriptor captured by a block. llvm-svn: 166746
Diffstat (limited to 'clang/lib/CodeGen/CGBlocks.h')
-rw-r--r--clang/lib/CodeGen/CGBlocks.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBlocks.h b/clang/lib/CodeGen/CGBlocks.h
index 912c21edc8d..73fa8173807 100644
--- a/clang/lib/CodeGen/CGBlocks.h
+++ b/clang/lib/CodeGen/CGBlocks.h
@@ -47,6 +47,18 @@ namespace CodeGen {
class CodeGenModule;
class CGBlockInfo;
+// Flags stored in __block variables.
+enum BlockByrefFlags {
+ BLOCK_BYREF_HAS_COPY_DISPOSE = (1 << 25), // compiler
+ BLOCK_BYREF_LAYOUT_MASK = (0xF << 28), // compiler
+ BLOCK_BYREF_LAYOUT_EXTENDED = (1 << 28),
+ BLOCK_BYREF_LAYOUT_NON_OBJECT = (2 << 28),
+ BLOCK_BYREF_LAYOUT_STRONG = (3 << 28),
+ BLOCK_BYREF_LAYOUT_BYREF = (4 << 28),
+ BLOCK_BYREF_LAYOUT_WEAK = (5 << 28),
+ BLOCK_BYREF_LAYOUT_UNRETAINED = (6 << 28)
+};
+
enum BlockLiteralFlags {
BLOCK_HAS_COPY_DISPOSE = (1 << 25),
BLOCK_HAS_CXX_OBJ = (1 << 26),
OpenPOWER on IntegriCloud