blob: a8cc258ca3756f7d8410782ae8fa3a3a2d66b394 [file] [log] [blame]
Douglas Gregor87c30072010-07-26 04:08:02 +00001// RUN: %clang_cc1 -fsyntax-only -verify -fblocks %s
2
3int printf(char const *, ...);
Steve Naroff5618bd42008-08-27 16:04:49 +00004
5struct blockStruct {
6 int (^a)(float, int);
7 int b;
8};
9
10int blockTaker (int (^myBlock)(int), int other_input)
11{
Steve Naroff296e8d52008-08-28 19:20:44 +000012 return 5 * myBlock (other_input);
Steve Naroff5618bd42008-08-27 16:04:49 +000013}
14
15int main (int argc, char **argv)
16{
Steve Naroff296e8d52008-08-28 19:20:44 +000017 int (^blockptr) (int) = ^(int inval) {
18 printf ("Inputs: %d, %d.\n", argc, inval);
19 return argc * inval;
20 };
21
22
23 argc = 10;
24 printf ("I got: %d.\n",
25 blockTaker (blockptr, 6));
Steve Naroff5618bd42008-08-27 16:04:49 +000026 return 0;
27}
28