1 // RUN: %clang_cc1 %s -verify
3 // expected-error@#fn{{unknown type name 'in'}}
4 // expected-error@#fn{{expected ')'}}
5 // expected-note@#fn{{to match this '('}}
6 void fn(in out
float f
); // #fn
8 // expected-error@#fn2{{unknown type name 'in'}}
9 // expected-error@#fn2{{expected ')'}}
10 // expected-note@#fn2{{to match this '('}}
11 void fn2(in in
float f
); // #fn2
13 // expected-error@#fn3{{unknown type name 'out'}}
14 // expected-error@#fn3{{expected ')'}}
15 // expected-note@#fn3{{to match this '('}}
16 void fn3(out out
float f
); // #fn3
18 // expected-error@#fn4{{unknown type name 'inout'}}
19 // expected-error@#fn4{{expected ')'}}
20 // expected-note@#fn4{{to match this '('}}
21 void fn4(inout in out
float f
); // #fn4
23 // expected-error@#fn5{{unknown type name 'inout'}}
24 // expected-error@#fn5{{expected ')'}}
25 // expected-note@#fn5{{to match this '('}}
26 void fn5(inout in
float f
); // #fn5
28 // expected-error@#fn6{{unknown type name 'inout'}}
29 // expected-error@#fn6{{expected ')'}}
30 // expected-note@#fn6{{to match this '('}}
31 void fn6(inout out
float f
); // #fn6
33 void implicitFn(float f
);
35 // expected-error@#inFn{{unknown type name 'in'}}
36 void inFn(in
float f
); // #inFn
38 // expected-error@#inoutFn{{unknown type name 'inout'}}
39 void inoutFn(inout
float f
); // #inoutFn
41 // expected-error@#outFn{{unknown type name 'out'}}
42 void outFn(out
float f
); // #outFn
44 // expected-error@#fn7{{unknown type name 'inout'}}
45 // expected-error@#fn7{{declaration of 'T' shadows template parameter}}
46 // expected-error@#fn7{{expected ')'}}
47 // expected-note@#fn7{{to match this '('}}
48 template <typename T
> // expected-note{{template parameter is declared here}}
49 void fn7(inout T f
); // #fn7