1 // RUN: %clang_cc1 -fblocks -fobjc-runtime-has-weak -fobjc-arc -triple x86_64-apple-darwin -print-ivar-layout -emit-llvm -o /dev/null %s > %t-64.layout
2 // RUN: FileCheck --input-file=%t-64.layout %s
3 // RUN: %clang_cc1 -fblocks -fobjc-runtime-has-weak -fobjc-arc -triple i386-apple-darwin -print-ivar-layout -emit-llvm -o /dev/null %s > %t-32.layout
4 // RUN: FileCheck --input-file=%t-32.layout %s
9 extern id opaque_id(void);
13 __block int byref_int = 0;
14 const id bar = (id) opaque_id();
16 __strong id strong_void_sta;
17 __block id byref_bab = (id)0;
20 // block variable layout: BL_STRONG:1, BL_OPERATOR:0
21 // CHECK: Inline block variable layout: 0x0100, BL_STRONG:1, BL_OPERATOR:0
26 // block variable layout: BL_STRONG:2, BL_BYREF:1, BL_OPERATOR:0
27 // CHECK: Inline block variable layout: 0x0210, BL_STRONG:2, BL_BYREF:1, BL_OPERATOR:0
34 // block variable layout: BL_STRONG:2, BL_BYREF:3, BL_OPERATOR:0
35 // CHECK: Inline block variable layout: 0x0230, BL_STRONG:2, BL_BYREF:3, BL_OPERATOR:0
44 // block variable layout: BL_STRONG:2, BL_BYREF:3, BL_OPERATOR:0
45 // CHECK: Inline block variable layout: 0x0230, BL_STRONG:2, BL_BYREF:3, BL_OPERATOR:0
55 // CHECK: Inline block variable layout: 0x020, BL_BYREF:2, BL_OPERATOR:0