block-pointer-decl.c 512 B

1234567891011121314151617181920212223242526272829
  1. // RUN: %clang_cc1 -fsyntax-only -verify -fblocks %s
  2. // expected-no-diagnostics
  3. int printf(char const *, ...);
  4. struct blockStruct {
  5. int (^a)(float, int);
  6. int b;
  7. };
  8. int blockTaker (int (^myBlock)(int), int other_input)
  9. {
  10. return 5 * myBlock (other_input);
  11. }
  12. int main (int argc, char **argv)
  13. {
  14. int (^blockptr) (int) = ^(int inval) {
  15. printf ("Inputs: %d, %d.\n", argc, inval);
  16. return argc * inval;
  17. };
  18. argc = 10;
  19. printf ("I got: %d.\n",
  20. blockTaker (blockptr, 6));
  21. return 0;
  22. }