blob: 9019a0fb24e4ca26238b892e481068f44a7a37cb [file] [log] [blame]
Daniel Dunbara5728872009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify -pedantic %s
Steve Naroff81bfde92007-10-16 23:12:48 +00002
Steve Naroff81bfde92007-10-16 23:12:48 +00003struct S { int a; };
4
Douglas Gregora41a8c52010-04-22 00:20:18 +00005extern int charStarFunc(char *); // expected-note{{passing argument to parameter here}}
6extern int charFunc(char); // expected-note{{passing argument to parameter here}}
Steve Naroff81bfde92007-10-16 23:12:48 +00007
8@interface Test
9+alloc;
Douglas Gregora41a8c52010-04-22 00:20:18 +000010-(int)charStarMeth:(char *)s; // expected-note{{passing argument to parameter 's' here}}
11-structMeth:(struct S)s; // expected-note{{passing argument to parameter 's' here}}
12-structMeth:(struct S)s
13 :(struct S)s2; // expected-note{{passing argument to parameter 's2' here}}
Steve Naroff81bfde92007-10-16 23:12:48 +000014@end
15
16void test() {
17 id obj = [Test alloc];
18 struct S sInst;
19
Douglas Gregord4eea832010-04-09 00:35:39 +000020 charStarFunc(1); // expected-warning {{incompatible integer to pointer conversion passing 'int' to parameter of type 'char *'}}
21 charFunc("abc"); // expected-warning {{incompatible pointer to integer conversion passing 'char [4]' to parameter of type 'char'}}
Steve Naroff81bfde92007-10-16 23:12:48 +000022
Chris Lattnerb7b61152008-01-04 18:22:42 +000023 [obj charStarMeth:1]; // expected-warning {{incompatible integer to pointer conversion sending 'int'}}
Douglas Gregord4eea832010-04-09 00:35:39 +000024 [obj structMeth:1]; // expected-error {{sending 'int'}}
25 [obj structMeth:sInst :1]; // expected-error {{sending 'int'}}
Steve Naroff81bfde92007-10-16 23:12:48 +000026}