1 // 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 5 void q(void (^p)(void)) { 6 p(); 7 } 8 9 void 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 28 int 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)); 36