blob: a48de4bbeae331255a937757ec488b430ea73d74 [file] [log] [blame]
Fariborz Jahanian05318d82011-02-16 22:37:10 +00001// RUN: %clang_cc1 -x c -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
2// RUN: FileCheck --input-file=%t-rw.cpp %s
3// rdar://9006279
4
5void q(void (^p)(void)) {
6 p();
7}
8
9void f() {
10 __block char BYREF_VAR_CHECK = 'a';
11 __block char d = 'd';
12 q(^{
13 q(^{
14 __block char e = 'e';
15 char l = 'l';
16 BYREF_VAR_CHECK = 'b';
17 d = 'd';
18 q(^{
19 e = '1';
20 BYREF_VAR_CHECK = '2';
21 d = '3';
22 }
23 );
24 });
25 });
26}
27
28int main() {
29 f();
30 return 0;
31}
32
33// CHECK 2: (__Block_byref_BYREF_VAR_CHECK_0 *)BYREF_VAR_CHECK
34// CHECK: (__Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK
35// CHECK: (struct __Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, (struct __Block_byref_d_1 *)&d, 570425344));