blob: e6121991e56b0f7e59ec33c9f25e3ef3b2cc3099 [file] [log] [blame]
Fariborz Jahanianf1ee6872012-04-10 00:08:18 +00001// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
2// RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
3// rdar://11202764
Fariborz Jahanianf1ee6872012-04-10 00:08:18 +00004
5typedef void(^BL)(void);
6
7id return_id(void(^block)(void)) {
8 return block;
9}
10
11BL return_block(id obj) {
12 return obj;
13}
14
15int main()
16{
17 void(^block)(void);
18 id obj;
19 block = obj; // AnyPointerToBlockPointerCast
20 obj = block; // BlockPointerToObjCPointerCast
21
22 id obj1 = block;
23
24 void(^block1)(void) = obj1;
25
26 return_id(block1);
27
28 return_id(obj1);
29
30 return_block(block1);
31
32 return_block(obj1);
33}