// RUN: %clang_cc1 -verify -o - %s __attribute__((objc_root_class)) @interface Root @end // Test reference binding. typedef struct { int f0; int f1; } T; @interface A : Root @property (assign) T p0; @property (assign) T& p1; @end int f0(const T& t) { return t.f0; } int f1(A *a) { return f0(a.p0); } int f2(A *a) { return f0(a.p1); } // PR7740 @class NSString; void f3(id); void f4(NSString &tmpstr) { f3(&tmpstr); } // PR7741 @protocol P1 @end @protocol P2 @end @protocol P3 @end @interface foo<P1> {} @end @interface bar : foo <P1, P2, P3> {} @end typedef bar baz; struct ToBar { operator bar&() const; }; void f5(foo&); void f5b(foo<P1>&); void f5c(foo<P2>&); void f5d(foo<P3>&); void f6(baz* x) { f5(*x); f5b(*x); f5c(*x); f5d(*x); (void)((foo&)*x); f5(ToBar()); f5b(ToBar()); f5c(ToBar()); f5d(ToBar()); (void)((foo&)ToBar()); } // rdar://13794269 @interface B : Root @end @implementation B { unsigned bf : 4; // expected-note {{declared here}} } - (void) foo { unsigned &i = bf; // expected-error {{non-const reference cannot bind to bit-field 'bf'}} } @end