1*67e74705SXin Li// Objective-C recovery 2*67e74705SXin Li// RUN: cp %s %t 3*67e74705SXin Li// RUN: not %clang_cc1 -pedantic -Wall -fixit -x objective-c %t 4*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -x objective-c %t 5*67e74705SXin Li 6*67e74705SXin Li// Objective-C++ recovery 7*67e74705SXin Li// RUN: cp %s %t 8*67e74705SXin Li// RUN: not %clang_cc1 -pedantic -Wall -fixit -x objective-c++ %t 9*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -pedantic -Wall -Werror -x objective-c++ %t 10*67e74705SXin Li 11*67e74705SXin Li@interface A 12*67e74705SXin Li- (int)method1:(int)x second:(float)y; 13*67e74705SXin Li+ (int)method2:(int)x second:(double)y; 14*67e74705SXin Li- (int)getBlah; 15*67e74705SXin Li@end 16*67e74705SXin Li 17*67e74705SXin Livoid f(A *a, int i, int j) { 18*67e74705SXin Li a method1:5+2 second:+(3.14159)]; 19*67e74705SXin Li a method1:[a method1:3 second:j] second:i++] 20*67e74705SXin Li a getBlah]; 21*67e74705SXin Li 22*67e74705SXin Li int array[17]; 23*67e74705SXin Li (void)array[a method1:5+2 second:+(3.14159)]]; 24*67e74705SXin Li (A method2:5+2 second:3.14159]); 25*67e74705SXin Li A method2:5+2 second:3.14159] 26*67e74705SXin Li if (A method2:5+2 second:3.14159]) { } 27*67e74705SXin Li} 28*67e74705SXin Li 29*67e74705SXin Li@interface B : A 30*67e74705SXin Li- (int)method1:(int)x second:(float)y; 31*67e74705SXin Li@end 32*67e74705SXin Li 33*67e74705SXin Li@implementation B 34*67e74705SXin Li- (int)method1:(int)x second:(float)y { 35*67e74705SXin Li super method1:x second:y]; 36*67e74705SXin Li return super getBlah]; 37*67e74705SXin Li} 38*67e74705SXin Li@end 39