blob: a52762992575c198121198484e0b2e46dfc55f6c [file] [log] [blame]
/* APPLE LOCAL file radar 5732232 - blocks */
/* { dg-do compile } */
/* { dg-options "-fblocks" } */
void take(void*);
void test() {
take(^(int x){});
take(^(int x, int y){});
take(^(int x, int y){});
take(^(int x, int x){}); /* { dg-error "redeclaration of" } */
/* { dg-error "previously declared" "" { target *-*-* } 11 } */
take(^(int x) { return x+1; });
int (^CP)(int) = ^(int x) { return x*x; };
take(CP);
int arg;
^{return 1;}();
^{return 2;}(arg); /* { dg-error "too many arguments to block call" } */
^(void){return 3;}(1); /* { dg-error "too many arguments to block call" } */
^(){return 4;}(arg); /* { dg-error "too many arguments to block call" } */
^(int x, ...){return 5;}(arg, arg); /* Explicit varargs, ok. */
}