Add an assert for safety check.
[clang.git] / test / SemaObjC / method-bad-param.m
blobf797188669ade133acffde5c153d71e7f1e76e69
1 // RUN: clang-cc -fsyntax-only -verify %s
3 @interface foo
4 @end
6 @implementation foo
7 @end
9 @interface bar
10 -(void) my_method:(foo) my_param; // expected-error {{Objective-C interface type 'foo' cannot be passed by value}}
11 - (foo)cccccc:(long)ddddd;  // expected-error {{Objective-C interface type 'foo' cannot be returned by value}}
12 @end
14 @implementation bar
15 -(void) my_method:(foo) my_param  // expected-error {{Objective-C interface type 'foo' cannot be passed by value}}
18 - (foo)cccccc:(long)ddddd // expected-error {{Objective-C interface type 'foo' cannot be returned by value}}
21 @end
23 void somefunc(foo x) {} // expected-error {{Objective-C interface type 'foo' cannot be passed by value}}
24 foo somefunc2() {} // expected-error {{Objective-C interface type 'foo' cannot be returned by value}}
26 // rdar://6780761
27 void f0(foo *a0) {
28   extern void g0(int x, ...);
29   g0(1, *(foo*)0);  // expected-error {{cannot pass object with interface type 'foo' by-value through variadic function}}