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