1*67e74705SXin Li// RUN: %clang_cc1 -fsyntax-only -verify -pedantic %s 2*67e74705SXin Li 3*67e74705SXin Listruct S { int a; }; 4*67e74705SXin Li 5*67e74705SXin Liextern int charStarFunc(char *); // expected-note{{passing argument to parameter here}} 6*67e74705SXin Liextern int charFunc(char); // expected-note{{passing argument to parameter here}} 7*67e74705SXin Li 8*67e74705SXin Li@interface Test 9*67e74705SXin Li+alloc; 10*67e74705SXin Li-(int)charStarMeth:(char *)s; // expected-note{{passing argument to parameter 's' here}} 11*67e74705SXin Li-structMeth:(struct S)s; // expected-note{{passing argument to parameter 's' here}} 12*67e74705SXin Li-structMeth:(struct S)s 13*67e74705SXin Li :(struct S)s2; // expected-note{{passing argument to parameter 's2' here}} 14*67e74705SXin Li@end 15*67e74705SXin Li 16*67e74705SXin Livoid test() { 17*67e74705SXin Li id obj = [Test alloc]; 18*67e74705SXin Li struct S sInst; 19*67e74705SXin Li 20*67e74705SXin Li charStarFunc(1); // expected-warning {{incompatible integer to pointer conversion passing 'int' to parameter of type 'char *'}} 21*67e74705SXin Li charFunc("abc"); // expected-warning {{incompatible pointer to integer conversion passing 'char [4]' to parameter of type 'char'}} 22*67e74705SXin Li 23*67e74705SXin Li [obj charStarMeth:1]; // expected-warning {{incompatible integer to pointer conversion sending 'int'}} 24*67e74705SXin Li [obj structMeth:1]; // expected-error {{sending 'int'}} 25*67e74705SXin Li [obj structMeth:sInst :1]; // expected-error {{sending 'int'}} 26*67e74705SXin Li} 27