| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| |
| #include <stdio.h> |
| #include <Block.h> |
| |
| // CONFIG |
| |
| void callsomething(const char *format, int argument) { |
| } |
| |
| void |
| dispatch_call_Block_with_release2(void *block) |
| { |
| void (^b)(void) = (void (^)(void))block; |
| b(); |
| Block_release(b); |
| } |
| |
| int main(int argc, char *argv[]) { |
| void (^b1)(void) = ^{ callsomething("argc is %d\n", argc); }; |
| void (^b2)(void) = ^{ callsomething("hellow world\n", 0); }; // global block now |
| |
| dispatch_call_Block_with_release2(Block_copy(b1)); |
| dispatch_call_Block_with_release2(Block_copy(b2)); |
| printf("%s: Success\n", argv[0]); |
| return 0; |
| } |