diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 18:00:15 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 18:00:15 +0000 |
commit | 63714eb5809e39666dec2454c354195e76f916ba (patch) | |
tree | e3714cd783c265396c2ef3c117047e7c0ea41619 /test/BlocksRuntime/recursive-block.c | |
parent | 0646903fc1f75f6e605754621119473ee083f4a4 (diff) |
Notes
Diffstat (limited to 'test/BlocksRuntime/recursive-block.c')
-rw-r--r-- | test/BlocksRuntime/recursive-block.c | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/test/BlocksRuntime/recursive-block.c b/test/BlocksRuntime/recursive-block.c deleted file mode 100644 index 454ad48267df7..0000000000000 --- a/test/BlocksRuntime/recursive-block.c +++ /dev/null @@ -1,55 +0,0 @@ -// -// 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> -#include <Block_private.h> -#include <stdlib.h> - -// CONFIG - - -int cumulation = 0; - -int doSomething(int i) { - cumulation += i; - return cumulation; -} - -void dirtyStack() { - int i = random(); - int j = doSomething(i); - int k = doSomething(j); - doSomething(i + j + k); -} - -typedef void (^voidVoid)(void); - -voidVoid testFunction() { - int i = random(); - __block voidVoid inner = ^{ doSomething(i); }; - //printf("inner, on stack, is %p\n", (void*)inner); - /*__block*/ voidVoid outer = ^{ - //printf("will call inner block %p\n", (void *)inner); - inner(); - }; - //printf("outer looks like: %s\n", _Block_dump(outer)); - voidVoid result = Block_copy(outer); - //Block_release(inner); - return result; -} - - -int main(int argc, char **argv) { - voidVoid block = testFunction(); - dirtyStack(); - block(); - Block_release(block); - - printf("%s: success\n", argv[0]); - - return 0; -} |