1 // RUN: %clang_cc1 -verify %s
2
3 /* WG14 N1316: Yes
4 * Conversion between pointers and floating types
5 */
6
7 void call_ptr(void *); // expected-note {{passing argument to parameter here}}
8 void call_float(float); // expected-note {{passing argument to parameter here}}
9
test(float in_f,void * in_vp)10 void test(float in_f, void *in_vp) {
11 float f = in_vp; // expected-error {{initializing 'float' with an expression of incompatible type 'void *'}}
12 void *vp = in_f; // expected-error {{initializing 'void *' with an expression of incompatible type 'float'}}
13
14 call_ptr(f); // expected-error {{passing 'float' to parameter of incompatible type 'void *'}}
15 call_float(vp); // expected-error {{passing 'void *' to parameter of incompatible type 'float'}}
16
17 vp = f; // expected-error {{assigning to 'void *' from incompatible type 'float'}}
18 f = vp; // expected-error {{assigning to 'float' from incompatible type 'void *'}}
19
20 struct S {
21 void *ptr;
22 float flt;
23 } s = { f, vp }; // expected-error {{initializing 'void *' with an expression of incompatible type 'float'}} \
24 expected-error {{initializing 'float' with an expression of incompatible type 'void *'}}
25 }
26
27