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// 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: (__Block_byref_BYREF_VAR_CHECK_0 *)BYREF_VAR_CHECK 34// CHECK: {(void*)0,(__Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, 0, sizeof(__Block_byref_BYREF_VAR_CHECK_0), 'a'} 35// CHECK: __Block_byref_BYREF_VAR_CHECK_0 *)&BYREF_VAR_CHECK, (__Block_byref_d_1 *)&d, 570425344))); 36