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