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/* Values slightly smaller than minimum (closest to zero) for result type. */ 17CONVERT_VALID (401, sd, sf, 1.e-39df, 0.f, FLT_MIN) 18CONVERT_VALID (402, sd, sf, -1.e-39df, 0.f, FLT_MIN) 19CONVERT_VALID (403, sd, sf, 1.1e-38df, 0.f, FLT_MIN) 20CONVERT_VALID (404, sd, sf, -1.1e-38df, 0.f, FLT_MIN) 21 22CONVERT_VALID (411, dd, sf, 1.e-39dd, 0.f, FLT_MIN) 23CONVERT_VALID (412, dd, sf, -1.e-39dd, 0.f, FLT_MIN) 24CONVERT_VALID (413, dd, sf, 1.1e-38dd, 0.f, FLT_MIN) 25CONVERT_VALID (414, dd, sf, -1.1e-38dd, 0.f, FLT_MIN) 26 27CONVERT_VALID (421, dd, df, 3.e-309dd, 0., DBL_MIN) 28CONVERT_VALID (422, dd, df, -3.e-309dd, 0., DBL_MIN) 29CONVERT_VALID (423, dd, df, 2.e-308dd, 0., DBL_MIN) 30CONVERT_VALID (424, dd, df, -2.e-308dd, 0., DBL_MIN) 31 32CONVERT_VALID (431, td, sf, 1.e-39dl, 0.f, FLT_MIN) 33CONVERT_VALID (432, td, sf, -1.e-39dl, 0.f, FLT_MIN) 34CONVERT_VALID (433, td, sf, 1.1e-38dl, 0.f, FLT_MIN) 35CONVERT_VALID (434, td, sf, -1.1e-38dl, 0.f, FLT_MIN) 36 37CONVERT_VALID (441, td, df, 3.e-309dl, 0., DBL_MIN) 38CONVERT_VALID (442, td, df, -3.e-309dl, 0., DBL_MIN) 39CONVERT_VALID (443, td, df, 2.e-308dl, 0., DBL_MIN) 40CONVERT_VALID (444, td, df, -2.e-308dl, 0., DBL_MIN) 41 42int 43main () 44{ 45 convert_401 (); 46 convert_402 (); 47 convert_403 (); 48 convert_404 (); 49 50 convert_411 (); 51 convert_412 (); 52 convert_413 (); 53 convert_414 (); 54 55 convert_421 (); 56 convert_422 (); 57 convert_423 (); 58 convert_424 (); 59 60 convert_431 (); 61 convert_432 (); 62 convert_433 (); 63 convert_434 (); 64 65 convert_441 (); 66 convert_442 (); 67 convert_443 (); 68 convert_444 (); 69 70 FINISH 71} 72