blob: 3806a4c9653089ea34ee774985cfd89e6a4845c8 [file] [log] [blame]
Daniel Dunbar8fbe78f2009-12-15 20:14:24 +00001// RUN: %clang_cc1 -fsyntax-only -verify -pedantic %s
Steve Naroff077c83b2007-10-16 23:12:48 +00002
Steve Naroff077c83b2007-10-16 23:12:48 +00003struct S { int a; };
4
5extern int charStarFunc(char *);
6extern int charFunc(char);
7
8@interface Test
9+alloc;
10-(int)charStarMeth:(char *)s;
11-structMeth:(struct S)s;
12-structMeth:(struct S)s :(struct S)s2;
13@end
14
15void test() {
16 id obj = [Test alloc];
17 struct S sInst;
18
Chris Lattner940cfeb2008-01-04 18:22:42 +000019 charStarFunc(1); // expected-warning {{incompatible integer to pointer conversion passing 'int', expected 'char *'}}
Chris Lattner36fc8792008-02-11 00:02:17 +000020 charFunc("abc"); // expected-warning {{incompatible pointer to integer conversion passing 'char [4]', expected 'char'}}
Steve Naroff077c83b2007-10-16 23:12:48 +000021
Chris Lattner940cfeb2008-01-04 18:22:42 +000022 [obj charStarMeth:1]; // expected-warning {{incompatible integer to pointer conversion sending 'int'}}
Chris Lattner816dea22008-01-03 23:38:43 +000023 [obj structMeth:1]; // expected-error {{incompatible type sending 'int'}}
24 [obj structMeth:sInst :1]; // expected-error {{incompatible type sending 'int'}}
Steve Naroff077c83b2007-10-16 23:12:48 +000025}