diff options
Diffstat (limited to 'clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm')
| -rw-r--r-- | clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm b/clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm new file mode 100644 index 00000000000..2796512ac09 --- /dev/null +++ b/clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -fblocks %s +// radar 7562285 + +typedef int (^blocktype)(int a, int b); + +@interface A { + A* a; + id b; + Class c; +} +- (blocktype)Meth; +@end + +@implementation A +- (blocktype)Meth { + if (b) + return (blocktype)b; + else if (a) + return (blocktype)a; // expected-error {{C-style cast from 'A *' to 'blocktype' (aka 'int (^)(int, int)') is not allowed}} + else + return (blocktype)c; +} +@end |

