1/* { dg-options "-w" } */
2
3/* This test assumes IEEE float and double.  */
4
5#define __STDC_WANT_DEC_FP__
6#include <float.h>
7
8#include "convert.h"
9
10volatile _Decimal32 sd;
11volatile _Decimal64 dd;
12volatile _Decimal128 td;
13volatile float sf;
14volatile double df;
15
16/* Check values that are too large for the result type.  */
17CONVERT_TO_PINF (301, sd, sf, 4.e+38df, f)
18CONVERT_TO_PINF (303, dd, sf, 4.e+38dd, f)
19CONVERT_TO_PINF (302, sd, sf, 9.9e+384df, f)
20CONVERT_TO_PINF (304, dd, sf, 9.9e+384dd, f)
21CONVERT_TO_PINF (305, td, sf, 4.e+38dl, f)
22CONVERT_TO_PINF (306, td, sf, 1.e+39dl, f)
23CONVERT_TO_MINF (311, sd, sf, -4.e+38df, f)
24CONVERT_TO_MINF (312, dd, sf, -4.e+38dd, f)
25CONVERT_TO_MINF (313, sd, sf, -9.9e+384df, f)
26CONVERT_TO_MINF (314, dd, sf, -9.9e+384dd, f)
27CONVERT_TO_MINF (315, td, sf, -4.e+38dl, f)
28CONVERT_TO_MINF (316, td, sf, -1.e+39dl, f)
29
30CONVERT_TO_PINF (321, dd, df, 1.8e+308dd,)
31CONVERT_TO_PINF (322, dd, df, 9.9e+384dd,)
32CONVERT_TO_PINF (323, td, df, 1.8e+308dl,)
33CONVERT_TO_PINF (324, td, df, 9.9e+384dl,)
34CONVERT_TO_PINF (325, dd, df, 1.e309dd,)
35CONVERT_TO_PINF (326, td, df, 1.e309dl,)
36CONVERT_TO_MINF (331, dd, df, -1.8e+308dd,)
37CONVERT_TO_MINF (332, dd, df, -9.9e+384dd,)
38CONVERT_TO_MINF (333, td, df, -1.8e+308dl,)
39CONVERT_TO_MINF (334, td, df, -9.9e+384dl,)
40CONVERT_TO_MINF (335, dd, df, -1.e309dd,)
41CONVERT_TO_MINF (336, td, df, -1.e309dl,)
42
43CONVERT_TO_PINF (341, df, sd, 1.0e+97, d32)
44CONVERT_TO_PINF (342, df, sd, 1.6e+308, d32)
45CONVERT_TO_MINF (351, df, sd, -1.0e+97, d32)
46CONVERT_TO_MINF (352, df, sd, -1.6e+308, d32)
47
48int
49main ()
50{
51  convert_301 ();
52  convert_302 ();
53  convert_303 ();
54  convert_304 ();
55  convert_305 ();
56  convert_306 ();
57  convert_311 ();
58  convert_312 ();
59  convert_313 ();
60  convert_314 ();
61  convert_315 ();
62  convert_316 ();
63
64  convert_321 ();
65  convert_322 ();
66  convert_323 ();
67  convert_324 ();
68  convert_325 ();
69  convert_326 ();
70  convert_331 ();
71  convert_332 ();
72  convert_333 ();
73  convert_334 ();
74  convert_335 ();
75  convert_336 ();
76
77  convert_341 ();
78  convert_342 ();
79  convert_351 ();
80  convert_352 ();
81
82  FINISH
83}
84