|  | // 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); | 
|  | } | 
|  |  | 
|  |  |