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 4 void q(void (^p)(void)) { 5 p(); 6 } 7 f(void)8void f(void) { 9 __block char BYREF_VAR_CHECK = 'a'; 10 __block char d = 'd'; 11 q(^{ 12 q(^{ 13 __block char e = 'e'; 14 char l = 'l'; 15 BYREF_VAR_CHECK = 'b'; 16 d = 'd'; 17 q(^{ 18 e = '1'; 19 BYREF_VAR_CHECK = '2'; 20 d = '3'; 21 } 22 ); 23 }); 24 }); 25 } 26 main(void)27int main(void) { 28 f(); 29 return 0; 30 } 31 32 // CHECK: (__Block_byref_BYREF_VAR_CHECK_0 *)BYREF_VAR_CHECK 33 // CHECK: (__Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK 34 // CHECK: (struct __Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, (struct __Block_byref_d_1 *)&d, 570425344)); 35