27 lines · c
1// RUN: %clang_cc1 -verify %s2 3/* WG14 N1316: Yes4 * Conversion between pointers and floating types5 */6 7void call_ptr(void *); // expected-note {{passing argument to parameter here}}8void call_float(float); // expected-note {{passing argument to parameter here}}9 10void 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