1 // RUN: %clang_cc1 -fblocks -fobjc-gc -triple x86_64-apple-darwin -O0 -S %s -o %t-64.s
2 // RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s
20 __block int byref_int = 0;
27 __strong void *strong_void_sta;
28 __block id byref_bab = (id)0;
29 __block void *bl_var1;
33 byref_int = sh + ch+ch1+ch2 ;
36 x((id)strong_void_sta);
43 byref_int = sh + ch+ch1+ch2 ;
46 x((id)strong_void_sta);
55 byref_int = sh + ch+ch1+ch2 ;
73 // Test 5 (unions/structs and their nesting):
110 void notifyBlock(id dependentBlock) {
111 id singleObservationToken;
114 void (^wrapperBlock)() = ^() {
115 CFRelease(singleObservationToken);
116 CFRelease(singleObservationToken);
118 CFRelease(singleObservationToken);
124 void test_empty_block() {
125 void (^wrapperBlock)() = ^() {
130 // CHECK-LP64: L_OBJC_CLASS_NAME_:
131 // CHECK-LP64-NEXT: .asciz "\0011\024"
133 // CHECK-LP64: L_OBJC_CLASS_NAME_1:
134 // CHECK-LP64-NEXT: .asciz "\0011\025"
136 // CHECK-LP64: L_OBJC_CLASS_NAME_6:
137 // CHECK-LP64-NEXT: .asciz "\0011\023!"
139 // CHECK-LP64: L_OBJC_CLASS_NAME_11:
140 // CHECK-LP64-NEXT: .asciz "\001A\021\021"
142 // CHECK-LP64: L_OBJC_CLASS_NAME_14:
143 // CHECK-LP64-NEXT: .asciz "\001A\021\022p"
145 // CHECK-LP64: L_OBJC_CLASS_NAME_16:
146 // CHECK-LP64-NEXT: .asciz "\0013"
148 // CHECK-LP64: L_OBJC_CLASS_NAME_20:
149 // CHECK-LP64-NEXT: .asciz "\001"