| // RUN: %clang %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o | 
 | // RUN: %clang %target_itanium_abi_host_triple %t.o -o %t.out -framework Foundation | 
 | // RUN: %test_debuginfo %s %t.out  | 
 |  | 
 | // REQUIRES: system-darwin | 
 |  | 
 | // DEBUGGER: break 24 | 
 | // DEBUGGER: r | 
 | // DEBUGGER: p result | 
 | // CHECK: ${{[0-9]}} = 42 | 
 |  | 
 | void doBlock(void (^block)(void)) | 
 | { | 
 |     block(); | 
 | } | 
 |  | 
 | int I(int n) | 
 | { | 
 |     __block int result; | 
 |     int i = 2; | 
 |     doBlock(^{ | 
 |         result = n; | 
 |     }); | 
 |     return result + i; /* Check value of 'result' */ | 
 | } | 
 |  | 
 |  | 
 | int main (int argc, const char * argv[]) { | 
 |   return I(42); | 
 | } | 
 |  | 
 |  |