1// RUN: %clang_cc1 -E %s -o %t.mm 2// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %t.mm -o - | FileCheck %s 3 4void q(void (^p)(void)) { 5 p(); 6} 7 8void f() { 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 27int main() { 28 f(); 29 return 0; 30} 31 32// CHECK: (__Block_byref_BYREF_VAR_CHECK_0 *)BYREF_VAR_CHECK 33// CHECK: {(void*)0,(__Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, 0, sizeof(__Block_byref_BYREF_VAR_CHECK_0), 'a'} 34// CHECK: __Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, (__Block_byref_d_1 *)&d, 570425344))); 35