diff options
Diffstat (limited to 'clang/test/Sema/block-misc.c')
-rw-r--r-- | clang/test/Sema/block-misc.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/clang/test/Sema/block-misc.c b/clang/test/Sema/block-misc.c index bef2662bbcd..dbcc253c58b 100644 --- a/clang/test/Sema/block-misc.c +++ b/clang/test/Sema/block-misc.c @@ -112,13 +112,16 @@ void test11(int i) { ^{ break; }(); // expected-error {{'break' statement not in loop or switch statement}} } +enum { LESS }; + +void foo(long (^comp)()) { +} void (^test12f)(void); void test12() { - test12f = ^test12f; // expected-error {{type name requires a specifier or qualifier}} expected-error {{expected expression}} + foo(^{ return LESS; }); // expected-error {{incompatible block pointer types passing 'int (^)(void)', expected 'long (^)()'}} } - // rdar://6808730 void *test13 = ^{ int X = 32; @@ -138,3 +141,8 @@ void test14() { }; }; } + +void (^test90f)(void); +void test90() { + test90f = ^test90f; // expected-error {{type name requires a specifier or qualifier}} expected-error {{expected expression}} +} |