1 /* { dg-options "-std=gnu99" } */
3 /* C99 6.5.4 Cast operators.
4 Test valid casts involving decimal float. */
6 extern void abort (void);
10 extern int printf (const char *, ...);
11 #define FAILURE { printf ("failed at line %d\n", __LINE__); failcnt++; }
13 #define FAILURE abort ();
21 static double d = 2.l;
26 /* Casts between DFP types. */
31 if (d32 != (_Decimal32) d64)
33 if (d32 != (_Decimal32) d128)
36 if (d64 != (_Decimal64) d32)
38 if (d64 != (_Decimal64) d128)
41 if (d128 != (_Decimal128) d32)
43 if (d128 != (_Decimal128) d64)
46 /* Casts between generic and decimal floating point types. Use a
47 value that we can assume can be represented exactly in all
54 /* To generic floating types. */
55 if ((float) d32 != 2.0f)
57 if ((double) d32 != 2.0l)
59 if ((float) d64 != 2.0f)
61 if ((double) d64 != 2.0l)
63 if ((float) d128 != 2.0f)
65 if ((double) d128 != 2.0l)
68 /* float to decimal floating types. */
69 if (d32 != (_Decimal32) f)
71 if (d64 != (_Decimal64) f)
73 if (d128 != (_Decimal128) f)
76 /* double to decimal floating types. */
77 if (d32 != (_Decimal32) d)
79 if (d64 != (_Decimal64) d)
81 if (d128 != (_Decimal128) d)