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// nestedimport.m 9// testObjects 10// 11// Created by Blaine Garst on 6/24/08. 12// 13// pure C nothing more needed 14// CONFIG 15 16 17#include <stdio.h> 18#include <stdlib.h> 19 20 21int Global = 0; 22 23void callVoidVoid(void (^closure)(void)) { 24 closure(); 25} 26 27int main(int argc, char *argv[]) { 28 int i = 1; 29 30 void (^vv)(void) = ^{ 31 if (argc > 0) { 32 callVoidVoid(^{ Global = i; }); 33 } 34 }; 35 36 i = 2; 37 vv(); 38 if (Global != 1) { 39 printf("%s: error, Global not set to captured value\n", argv[0]); 40 exit(1); 41 } 42 printf("%s: success\n", argv[0]); 43 return 0; 44} 45