Home | History | Annotate | Download | only in Rewriter
      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