• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: %clang_cc1 %s -emit-llvm -o %t -fobjc-gc -fblocks -triple i386-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5
2// RUN: grep "_Block_object_dispose" %t | count 6
3// RUN: grep "__copy_helper_block_" %t | count 4
4// RUN: grep "__destroy_helper_block_" %t | count 4
5// RUN: grep "__Block_byref_object_copy_" %t | count 2
6// RUN: grep "__Block_byref_object_dispose_" %t | count 2
7// RUN: not grep "i32 135)" %t
8// RUN: grep "_Block_object_assign" %t | count 4
9// RUN: grep "objc_read_weak" %t | count 2
10// RUN: grep "objc_assign_weak" %t | count 3
11// RUN: %clang_cc1 -x objective-c++ %s -emit-llvm -o %t -fobjc-gc -fblocks -triple i386-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5
12// RUN: grep "_Block_object_dispose" %t | count 6
13// RUN: grep "__copy_helper_block_" %t | count 4
14// RUN: grep "__destroy_helper_block_" %t | count 4
15// RUN: grep "__Block_byref_object_copy_" %t | count 2
16// RUN: grep "__Block_byref_object_dispose_" %t | count 2
17// RUN: not grep "i32 135)" %t
18// RUN: grep "_Block_object_assign" %t | count 4
19// RUN: grep "objc_read_weak" %t | count 2
20// RUN: grep "objc_assign_weak" %t | count 3
21
22@interface NSDictionary @end
23
24void test1(NSDictionary * dict) {
25  ^{ (void)dict; }();
26}
27
28@interface D
29@end
30
31void foo() {
32  __block __weak D *weakSelf;
33  D *l;
34  l = weakSelf;
35  weakSelf = l;
36}
37
38void (^__weak b)(void);
39
40void test2() {
41  __block int i = 0;
42  b = ^ {  ++i; };
43}
44