[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / SemaObjC / argument-checking.m
blobc2b43d55dc4c4db3f889ea6853164a8424899175
1 // RUN: %clang_cc1 -fsyntax-only -verify -pedantic %s
3 struct S { int a; };
5 extern int charStarFunc(char *); // expected-note{{passing argument to parameter here}}
6 extern int charFunc(char); // expected-note{{passing argument to parameter here}}
8 @interface Test
9 +alloc;
10 -(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}}
14 @end
16 void test(void) {
17   id obj = [Test alloc];
18   struct S sInst;
20   charStarFunc(1); // expected-error {{incompatible integer to pointer conversion passing 'int' to parameter of type 'char *'}}
21   charFunc("abc"); // expected-error {{incompatible pointer to integer conversion passing 'char[4]' to parameter of type 'char'}}
23   [obj charStarMeth:1]; // expected-error {{incompatible integer to pointer conversion sending 'int'}}
24   [obj structMeth:1]; // expected-error {{sending 'int'}}
25   [obj structMeth:sInst :1]; // expected-error {{sending 'int'}}