diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-01-21 00:05:09 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-01-21 00:05:09 +0000 |
commit | e4951fdc4b95870b4533b0ff1e6678b52bbaf36d (patch) | |
tree | 94bf25f5cebfc4a42cf307ca0fe2b239773a87f7 /clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm | |
parent | fed36b1aa13452a7e416a0faa5a36d681fa08059 (diff) | |
download | bcm5719-llvm-e4951fdc4b95870b4533b0ff1e6678b52bbaf36d.tar.gz bcm5719-llvm-e4951fdc4b95870b4533b0ff1e6678b52bbaf36d.zip |
Also allow cast of block pointer type to
pointer to an any object. Another variation of
radar 7562285.
llvm-svn: 94052
Diffstat (limited to 'clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm')
-rw-r--r-- | clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm b/clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm index 2796512ac09..72f5283dea3 100644 --- a/clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm +++ b/clang/test/SemaObjCXX/cstyle-block-pointer-cast.mm @@ -21,3 +21,22 @@ typedef int (^blocktype)(int a, int b); return (blocktype)c; } @end + +@interface B { + blocktype a; + blocktype b; + blocktype c; +} +- (id)Meth; +@end + +@implementation B +- (id)Meth { + if (a) + return (A*)a; // expected-error {{C-style cast from 'blocktype' (aka 'int (^)(int, int)') to 'A *' is not allowed}} + if (b) + return (id)b; + if (c) + return (Class)b; +} +@end |