1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify %s 2*67e74705SXin Li// rdar://8155806 3*67e74705SXin Li 4*67e74705SXin Li@interface Subclass 5*67e74705SXin Li{ 6*67e74705SXin Li int setterOnly; 7*67e74705SXin Li} 8*67e74705SXin Li- (void) setSetterOnly : (int) arg; 9*67e74705SXin Li@end 10*67e74705SXin Li 11*67e74705SXin Liint func (int arg, Subclass *x) { 12*67e74705SXin Li if (x.setterOnly) { // expected-error {{no getter method for read from property}} 13*67e74705SXin Li x.setterOnly = 1; 14*67e74705SXin Li } 15*67e74705SXin Li func(x.setterOnly + 1, x); // expected-error {{no getter method for read from property}} 16*67e74705SXin Li int i = x.setterOnly + 1; // expected-error {{no getter method for read from property}} 17*67e74705SXin Li return x.setterOnly + 1; // expected-error {{no getter method for read from property}} 18*67e74705SXin Li} 19*67e74705SXin Li 20*67e74705SXin Li// <rdar://problem/12765391> 21*67e74705SXin Li 22*67e74705SXin Li@interface TestClass 23*67e74705SXin Li+ (void) setSetterOnly : (int) arg; 24*67e74705SXin Li@end 25*67e74705SXin Li 26*67e74705SXin Liint func2 (int arg) { 27*67e74705SXin Li if (TestClass.setterOnly) { // expected-error {{no getter method for read from property}} 28*67e74705SXin Li TestClass.setterOnly = 1; 29*67e74705SXin Li } 30*67e74705SXin Li func(TestClass.setterOnly + 1, x); // expected-error {{no getter method for read from property}} \ 31*67e74705SXin Li // expected-error {{use of undeclared identifier 'x'}} 32*67e74705SXin Li int i = TestClass.setterOnly + 1; // expected-error {{no getter method for read from property}} 33*67e74705SXin Li return TestClass.setterOnly + 1; // expected-error {{no getter method for read from property}} 34*67e74705SXin Li} 35*67e74705SXin Li 36*67e74705SXin Li@interface Sub : Subclass 37*67e74705SXin Li- (int) func3; 38*67e74705SXin Li@end 39*67e74705SXin Li@implementation Sub 40*67e74705SXin Li- (int) func3 { 41*67e74705SXin Li return super.setterOnly; // expected-error {{no getter method for read from property}} 42*67e74705SXin Li} 43*67e74705SXin Li@end 44