1*67e74705SXin Li// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fms-extensions -rewrite-objc %s -o %t-modern-rw.cpp 2*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-modern-rw.cpp 3*67e74705SXin Li// rdar://13138459 4*67e74705SXin Li 5*67e74705SXin Livoid *sel_registerName(const char *); 6*67e74705SXin Liextern void abort(); 7*67e74705SXin Li 8*67e74705SXin Li@interface NSObject 9*67e74705SXin Li+ alloc; 10*67e74705SXin Li- init; 11*67e74705SXin Li@end 12*67e74705SXin Li 13*67e74705SXin Litypedef unsigned char BOOL; 14*67e74705SXin Li 15*67e74705SXin Li@interface Foo : NSObject { 16*67e74705SXin Li 17*67e74705SXin Li BOOL _field1 : 5; 18*67e74705SXin Li BOOL _field2 : 3; 19*67e74705SXin Li} 20*67e74705SXin Li 21*67e74705SXin Li@property BOOL field1; 22*67e74705SXin Li@property BOOL field2; 23*67e74705SXin Li@end 24*67e74705SXin Li 25*67e74705SXin Li@implementation Foo 26*67e74705SXin Li 27*67e74705SXin Li@synthesize field1 = _field1; 28*67e74705SXin Li@synthesize field2 = _field2; 29*67e74705SXin Li 30*67e74705SXin Li@end 31*67e74705SXin Li 32*67e74705SXin Liint main() 33*67e74705SXin Li{ 34*67e74705SXin Li Foo *f = (Foo*)[[Foo alloc] init]; 35*67e74705SXin Li f.field1 = 0xF; 36*67e74705SXin Li f.field2 = 0x3; 37*67e74705SXin Li f.field1 = f.field1 & f.field2; 38*67e74705SXin Li if (f.field1 != 0x3) 39*67e74705SXin Li abort (); 40*67e74705SXin Li return 0; 41*67e74705SXin Li} 42*67e74705SXin Li 43*67e74705SXin Li 44