1 /* Test for diagnostics for Wconversion between floating-point and
2 integers. C++ equivalent of
3 gcc/testsuite/gcc.dg/Wconversion-real-integer.c */
6 /* { dg-options "-Wconversion" } */
7 /* { dg-require-effective-target int32plus } */
10 void fsi (signed int x);
11 void fui (unsigned int x);
12 void ffloat (float x);
13 void fdouble (double x);
27 fsi (3.1f); /* { dg-warning "conversion" } */
28 si = 3.1f; /* { dg-warning "conversion" } */
29 fsi (3.1); /* { dg-warning "conversion" } */
30 si = 3.1; /* { dg-warning "conversion" } */
31 fsi (d); /* { dg-warning "conversion" } */
32 si = d; /* { dg-warning "conversion" } */
33 fui (-1.0); /* { dg-warning "overflow" } */
34 ui = -1.0; /* { dg-warning "overflow" } */
35 ffloat (INT_MAX); /* { dg-warning "conversion" } */
36 vfloat = INT_MAX; /* { dg-warning "conversion" } */
37 ffloat (16777217); /* { dg-warning "conversion" } */
38 vfloat = 16777217; /* { dg-warning "conversion" } */
39 ffloat (si); /* { dg-warning "conversion" } */
40 vfloat = si; /* { dg-warning "conversion" } */
41 ffloat (ui); /* { dg-warning "conversion" } */
42 vfloat = ui; /* { dg-warning "conversion" } */
74 void fss (signed short x);
75 void fus (unsigned short x);
76 void fsc (signed char x);
77 void fuc (unsigned char x);
81 unsigned short int us;
86 fss (4294967294.0); /* { dg-warning "conversion" } */
87 ss = 4294967294.0; /* { dg-warning "conversion" } */
88 fss (-4294967294.0); /* { dg-warning "conversion" } */
89 ss = -4294967294.0; /* { dg-warning "conversion" } */
90 fus (4294967294.0); /* { dg-warning "conversion" } */
91 us = 4294967294.0; /* { dg-warning "conversion" } */
92 fus (-4294967294.0); /* { dg-warning "conversion" } */
93 us = -4294967294.0; /* { dg-warning "conversion" } */
95 fsc (500.0); /* { dg-warning "conversion" } */
96 sc = 500.0; /* { dg-warning "conversion" } */
97 fsc (-500.0); /* { dg-warning "conversion" } */
98 sc = -500.0; /* { dg-warning "conversion" } */
99 fuc (500.0); /* { dg-warning "conversion" } */
100 uc = 500.0; /* { dg-warning "conversion" } */
101 fuc (-500.0); /* { dg-warning "conversion" } */
102 uc = -500.0; /* { dg-warning "conversion" } */
110 fus (-500.0); /* { dg-warning "conversion" } */
111 us = -500.0; /* { dg-warning "conversion" } */