diff options
Diffstat (limited to 'BlocksRuntime/tests/blockimport.c')
-rw-r--r-- | BlocksRuntime/tests/blockimport.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/BlocksRuntime/tests/blockimport.c b/BlocksRuntime/tests/blockimport.c new file mode 100644 index 000000000000..178fce4395e5 --- /dev/null +++ b/BlocksRuntime/tests/blockimport.c @@ -0,0 +1,51 @@ +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. + +/* + * blockimport.c + * testObjects + * + * Created by Blaine Garst on 10/13/08. + * + */ + + +// +// pure C nothing more needed +// CONFIG rdar://6289344 + +#include <stdio.h> +#include <Block.h> +#include <Block_private.h> + + + + +int main(int argc, char *argv[]) { + int i = 1; + int (^intblock)(void) = ^{ return i*10; }; + + void (^vv)(void) = ^{ + if (argc > 0) { + printf("intblock returns %d\n", intblock()); + } + }; + +#if 0 + //printf("Block dump %s\n", _Block_dump(vv)); + { + struct Block_layout *layout = (struct Block_layout *)(void *)vv; + printf("isa %p\n", layout->isa); + printf("flags %x\n", layout->flags); + printf("descriptor %p\n", layout->descriptor); + printf("descriptor->size %d\n", layout->descriptor->size); + } +#endif + void (^vvcopy)(void) = Block_copy(vv); + Block_release(vvcopy); + printf("%s: success\n", argv[0]); + return 0; +} |