1 // 2 // The LLVM Compiler Infrastructure 3 // 4 // This file is distributed under the University of Illinois Open Source 5 // License. See LICENSE.TXT for details. 6 7 // 8 // byrefaccess.m 9 // test that byref access to locals is accurate 10 // testObjects 11 // 12 // Created by Blaine Garst on 5/13/08. 13 // 14 // CONFIG 15 16 #include <stdio.h> 17 18 19 void callVoidVoid(void (^closure)(void)) { 20 closure(); 21 } 22 main(int argc,char * argv[])23int main(int argc, char *argv[]) { 24 __block int i = 10; 25 26 callVoidVoid(^{ ++i; }); 27 28 if (i != 11) { 29 printf("*** %s didn't update i\n", argv[0]); 30 return 1; 31 } 32 printf("%s: success\n", argv[0]); 33 return 0; 34 } 35