1*67e74705SXin Li// RUN: %clang_cc1 -x objective-c++ -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp 2*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -D"__declspec(X)=" %t-rw.cpp 3*67e74705SXin Li// rdar://11231426 4*67e74705SXin Li 5*67e74705SXin Li// rdar://11375908 6*67e74705SXin Litypedef unsigned long size_t; 7*67e74705SXin Li 8*67e74705SXin Litypedef bool BOOL; 9*67e74705SXin Li 10*67e74705SXin LiBOOL yes() { 11*67e74705SXin Li return __objc_yes; 12*67e74705SXin Li} 13*67e74705SXin Li 14*67e74705SXin LiBOOL no() { 15*67e74705SXin Li return __objc_no; 16*67e74705SXin Li} 17*67e74705SXin Li 18*67e74705SXin LiBOOL which (int flag) { 19*67e74705SXin Li return flag ? yes() : no(); 20*67e74705SXin Li} 21*67e74705SXin Li 22*67e74705SXin Liint main() { 23*67e74705SXin Li which (__objc_yes); 24*67e74705SXin Li which (__objc_no); 25*67e74705SXin Li return __objc_yes; 26*67e74705SXin Li} 27*67e74705SXin Li 28*67e74705SXin Livoid y(BOOL (^foo)()); 29*67e74705SXin Li 30*67e74705SXin Livoid x() { 31*67e74705SXin Li y(^{ 32*67e74705SXin Li return __objc_yes; 33*67e74705SXin Li }); 34*67e74705SXin Li} 35