1*67e74705SXin Li// RUN: %clang_cc1 -x objective-c++ -fsyntax-only -Werror -verify -Wno-objc-root-class %s 2*67e74705SXin Li// expected-no-diagnostics 3*67e74705SXin Li// rdar://10387088 4*67e74705SXin Li 5*67e74705SXin Li@interface MyClass 6*67e74705SXin Li- (void)someMethod; 7*67e74705SXin Li@end 8*67e74705SXin Li 9*67e74705SXin Listruct S { 10*67e74705SXin Li int bar(MyClass * myObject); 11*67e74705SXin Li 12*67e74705SXin Li int gorfbar(MyClass * myObject); 13*67e74705SXin Li 14*67e74705SXin Li S(); 15*67e74705SXin Li S(MyClass *O1, MyClass *O2); 16*67e74705SXin Li S(MyClass *O1); 17*67e74705SXin Li 18*67e74705SXin Li MyClass * Obj1, *Obj2; 19*67e74705SXin Li 20*67e74705SXin Li}; 21*67e74705SXin Li 22*67e74705SXin Li@implementation MyClass 23*67e74705SXin Li- (void)someMethod { 24*67e74705SXin Li [self privateMethod]; // clang already does not warn here 25*67e74705SXin Li} 26*67e74705SXin Li 27*67e74705SXin Liint S::bar(MyClass * myObject) { 28*67e74705SXin Li [myObject privateMethod]; 29*67e74705SXin Li return gorfbar(myObject); 30*67e74705SXin Li} 31*67e74705SXin Li- (void)privateMethod { } 32*67e74705SXin Li 33*67e74705SXin Liint S::gorfbar(MyClass * myObject) { 34*67e74705SXin Li [myObject privateMethod]; 35*67e74705SXin Li [myObject privateMethod1]; 36*67e74705SXin Li return getMe + bar(myObject); 37*67e74705SXin Li} 38*67e74705SXin Li 39*67e74705SXin LiS::S(MyClass *O1, MyClass *O2) : Obj1(O1), Obj2(O2) { 40*67e74705SXin Li [O1 privateMethod]; 41*67e74705SXin Li [O2 privateMethod1]; 42*67e74705SXin Li} 43*67e74705SXin LiS::S(MyClass *O1) : Obj1(O1){ Obj2 = 0; } 44*67e74705SXin Li 45*67e74705SXin LiS::S() {} 46*67e74705SXin Li 47*67e74705SXin Li- (void)privateMethod1 { 48*67e74705SXin Li getMe = getMe+1; 49*67e74705SXin Li} 50*67e74705SXin Li 51*67e74705SXin Listatic int getMe; 52*67e74705SXin Li 53*67e74705SXin Li@end 54