30 lines
		
	
	
		
			512 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			512 B
		
	
	
	
		
			C
		
	
	
	
	
	
| // RUN: %clang_cc1 -fsyntax-only -verify -fblocks %s
 | |
| // expected-no-diagnostics
 | |
| 
 | |
| int printf(char const *, ...);
 | |
| 
 | |
| struct blockStruct {
 | |
|   int (^a)(float, int);
 | |
|   int b;
 | |
| };
 | |
| 
 | |
| int blockTaker (int (^myBlock)(int), int other_input)
 | |
| {
 | |
|   return 5 * myBlock (other_input);
 | |
| }
 | |
| 
 | |
| int main (int argc, char **argv)
 | |
| {
 | |
|   int (^blockptr) (int) = ^(int inval) {
 | |
|     printf ("Inputs: %d, %d.\n", argc, inval);
 | |
|     return argc * inval;
 | |
|   };
 | |
| 
 | |
| 
 | |
|   argc = 10;
 | |
|   printf ("I got: %d.\n",
 | |
|           blockTaker (blockptr, 6));
 | |
|   return 0;
 | |
| }
 | |
| 
 | 
