1// 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 4typedef void(^BL)(void); 5 6id return_id(void(^block)(void)) { 7 return block; 8} 9 10BL return_block(id obj) { 11 return obj; 12} 13 14int main() 15{ 16 void(^block)(void); 17 id obj; 18 block = obj; // AnyPointerToBlockPointerCast 19 obj = block; // BlockPointerToObjCPointerCast 20 21 id obj1 = block; 22 23 void(^block1)(void) = obj1; 24 25 return_id(block1); 26 27 return_id(obj1); 28 29 return_block(block1); 30 31 return_block(obj1); 32} 33