1  /* { dg-xfail-run-if "" { lax_strtofp } } */
       2  /* { dg-options "-w" } */
       3  
       4  /* This test assumes IEEE float and double.  */
       5  
       6  #define __STDC_WANT_DEC_FP__
       7  #include <float.h>
       8  
       9  #include "convert.h"
      10  
      11  volatile _Decimal32 sd;
      12  volatile _Decimal64 dd;
      13  volatile _Decimal128 td;
      14  volatile float sf;
      15  volatile double df;
      16  
      17  /* Exponent values that might cause problems with a particular
      18     implementation.  */
      19  
      20  CONVERT_VALID (101, dd, df, 1.e309dd, 1.e309, 0.) 
      21  CONVERT_VALID (102, dd, df, 1.e308dd, 1.e308, 0.)
      22  CONVERT_VALID (103, dd, df, 1.e307dd, 1.e307, 0.) 
      23  CONVERT_VALID (104, dd, df, 1.e306dd, 1.e306, 0.) 
      24  CONVERT_VALID (105, dd, df, 1.e305dd, 1.e305, 0.)
      25  CONVERT_VALID (106, dd, df, 1.e304dd, 1.e304, 0.)
      26  CONVERT_VALID (107, dd, df, 1.e303dd, 1.e303, 0.) 
      27  CONVERT_VALID (108, dd, df, 1.e302dd, 1.e302, 0.) 
      28  CONVERT_VALID (109, dd, df, 1.e301dd, 1.e301, 0.) 
      29  CONVERT_VALID (110, dd, df, 1.e300dd, 1.e300, 0.) 
      30  CONVERT_VALID (111, dd, df, 1.e299dd, 1.e299, 0.) 
      31  CONVERT_VALID (112, dd, df, 1.e298dd, 1.e298, 0.) 
      32  CONVERT_VALID (113, dd, df, 1.e297dd, 1.e297, 0.) 
      33  CONVERT_VALID (114, dd, df, 1.e296dd, 1.e296, 0.) 
      34  CONVERT_VALID (115, dd, df, 1.e295dd, 1.e295, 0.) 
      35  CONVERT_VALID (116, dd, df, 1.e294dd, 1.e294, 0.) 
      36  CONVERT_VALID (117, dd, df, 1.e293dd, 1.e293, 0.) 
      37  CONVERT_VALID (118, dd, df, 1.e292dd, 1.e292, 0.) 
      38  CONVERT_VALID (119, dd, df, 1.e291dd, 1.e291, 0.)
      39  CONVERT_VALID (120, dd, df, 1.e290dd, 1.e290, 0.)
      40  
      41  CONVERT_VALID (201, dd, df, 1.e-309dd, 1.e-309, 0.) 
      42  CONVERT_VALID (202, dd, df, 1.e-308dd, 1.e-308, 0.) 
      43  CONVERT_VALID (203, dd, df, 1.e-307dd, 1.e-307, 0.) 
      44  CONVERT_VALID (204, dd, df, 1.e-306dd, 1.e-306, 0.) 
      45  CONVERT_VALID (205, dd, df, 1.e-305dd, 1.e-305, 0.) 
      46  CONVERT_VALID (206, dd, df, 1.e-304dd, 1.e-304, 0.) 
      47  CONVERT_VALID (207, dd, df, 1.e-303dd, 1.e-303, 0.) 
      48  CONVERT_VALID (208, dd, df, 1.e-302dd, 1.e-302, 0.) 
      49  CONVERT_VALID (209, dd, df, 1.e-301dd, 1.e-301, 0.) 
      50  CONVERT_VALID (210, dd, df, 1.e-300dd, 1.e-300, 0.) 
      51  CONVERT_VALID (211, dd, df, 1.e-299dd, 1.e-299, 0.) 
      52  CONVERT_VALID (212, dd, df, 1.e-298dd, 1.e-298, 0.) 
      53  CONVERT_VALID (213, dd, df, 1.e-297dd, 1.e-297, 0.) 
      54  CONVERT_VALID (214, dd, df, 1.e-296dd, 1.e-296, 0.) 
      55  CONVERT_VALID (215, dd, df, 1.e-295dd, 1.e-295, 0.)
      56  CONVERT_VALID (216, dd, df, 1.e-294dd, 1.e-294, 0.)
      57  CONVERT_VALID (217, dd, df, 1.e-293dd, 1.e-293, 0.) 
      58  CONVERT_VALID (218, dd, df, 1.e-292dd, 1.e-292, 0.) 
      59  CONVERT_VALID (219, dd, df, 1.e-291dd, 1.e-291, 0.) 
      60  CONVERT_VALID (220, dd, df, 1.e-290dd, 1.e-290, 0.) 
      61  
      62  CONVERT_VALID (301, td, df, 1.e309dl, 1.e309, 0.) 
      63  CONVERT_VALID (302, td, df, 1.e308dl, 1.e308, 0.)
      64  CONVERT_VALID (303, td, df, 1.e307dl, 1.e307, 0.) 
      65  CONVERT_VALID (304, td, df, 1.e306dl, 1.e306, 0.) 
      66  CONVERT_VALID (305, td, df, 1.e305dl, 1.e305, 0.)
      67  CONVERT_VALID (306, td, df, 1.e304dl, 1.e304, 0.)
      68  CONVERT_VALID (307, td, df, 1.e303dl, 1.e303, 0.) 
      69  CONVERT_VALID (308, td, df, 1.e302dl, 1.e302, 0.) 
      70  CONVERT_VALID (309, td, df, 1.e301dl, 1.e301, 0.)
      71  CONVERT_VALID (310, td, df, 1.e300dl, 1.e300, 0.) 
      72  CONVERT_VALID (311, td, df, 1.e299dl, 1.e299, 0.)
      73  CONVERT_VALID (312, td, df, 1.e298dl, 1.e298, 0.)
      74  CONVERT_VALID (313, td, df, 1.e297dl, 1.e297, 0.) 
      75  CONVERT_VALID (314, td, df, 1.e296dl, 1.e296, 0.) 
      76  CONVERT_VALID (315, td, df, 1.e295dl, 1.e295, 0.)
      77  CONVERT_VALID (316, td, df, 1.e294dl, 1.e294, 0.)
      78  CONVERT_VALID (317, td, df, 1.e293dl, 1.e293, 0.) 
      79  CONVERT_VALID (318, td, df, 1.e292dl, 1.e292, 0.) 
      80  CONVERT_VALID (319, td, df, 1.e291dl, 1.e291, 0.) 
      81  CONVERT_VALID (320, td, df, 1.e290dl, 1.e290, 0.)
      82  
      83  CONVERT_VALID (401, td, df, 1.e-309dl, 1.e-309, 0.) 
      84  CONVERT_VALID (402, td, df, 1.e-308dl, 1.e-308, 0.) 
      85  CONVERT_VALID (403, td, df, 1.e-307dl, 1.e-307, 0.) 
      86  CONVERT_VALID (404, td, df, 1.e-306dl, 1.e-306, 0.) 
      87  CONVERT_VALID (405, td, df, 1.e-305dl, 1.e-305, 0.) 
      88  CONVERT_VALID (406, td, df, 1.e-304dl, 1.e-304, 0.) 
      89  CONVERT_VALID (407, td, df, 1.e-303dl, 1.e-303, 0.) 
      90  CONVERT_VALID (408, td, df, 1.e-302dl, 1.e-302, 0.) 
      91  CONVERT_VALID (409, td, df, 1.e-301dl, 1.e-301, 0.) 
      92  CONVERT_VALID (410, td, df, 1.e-300dl, 1.e-300, 0.) 
      93  CONVERT_VALID (411, td, df, 1.e-299dl, 1.e-299, 0.) 
      94  CONVERT_VALID (412, td, df, 1.e-298dl, 1.e-298, 0.) 
      95  CONVERT_VALID (413, td, df, 1.e-297dl, 1.e-297, 0.) 
      96  CONVERT_VALID (414, td, df, 1.e-296dl, 1.e-296, 0.) 
      97  CONVERT_VALID (415, td, df, 1.e-295dl, 1.e-295, 0.) 
      98  CONVERT_VALID (416, td, df, 1.e-294dl, 1.e-294, 0.) 
      99  CONVERT_VALID (417, td, df, 1.e-293dl, 1.e-293, 0.) 
     100  CONVERT_VALID (418, td, df, 1.e-292dl, 1.e-292, 0.)
     101  CONVERT_VALID (419, td, df, 1.e-291dl, 1.e-291, 0.) 
     102  CONVERT_VALID (420, td, df, 1.e-290dl, 1.e-290, 0.)
     103  
     104  int
     105  main ()
     106  {
     107    convert_101 ();
     108    convert_102 ();
     109    convert_103 ();
     110    convert_104 ();
     111    convert_105 ();
     112    convert_106 ();
     113    convert_107 ();
     114    convert_108 ();
     115    convert_109 ();
     116    convert_110 ();
     117    convert_111 ();
     118    convert_112 ();
     119    convert_113 ();
     120    convert_114 ();
     121    convert_115 ();
     122    convert_116 ();
     123    convert_117 ();
     124    convert_118 ();
     125    convert_119 ();
     126    convert_120 ();
     127  
     128    convert_201 ();
     129    convert_202 ();
     130    convert_203 ();
     131    convert_204 ();
     132    convert_205 ();
     133    convert_206 ();
     134    convert_207 ();
     135    convert_208 ();
     136    convert_209 ();
     137    convert_210 ();
     138    convert_211 ();
     139    convert_212 ();
     140    convert_213 ();
     141    convert_214 ();
     142    convert_215 ();
     143    convert_216 ();
     144    convert_217 ();
     145    convert_218 ();
     146    convert_219 ();
     147    convert_220 ();
     148  
     149    convert_301 ();
     150    convert_302 ();
     151    convert_303 ();
     152    convert_304 ();
     153    convert_305 ();
     154    convert_306 ();
     155    convert_307 ();
     156    convert_308 ();
     157    convert_309 ();
     158    convert_310 ();
     159    convert_311 ();
     160    convert_312 ();
     161    convert_313 ();
     162    convert_314 ();
     163    convert_315 ();
     164    convert_316 ();
     165    convert_317 ();
     166    convert_318 ();
     167    convert_319 ();
     168    convert_320 ();
     169  
     170    convert_401 ();
     171    convert_402 ();
     172    convert_403 ();
     173    convert_404 ();
     174    convert_405 ();
     175    convert_406 ();
     176    convert_407 ();
     177    convert_408 ();
     178    convert_409 ();
     179    convert_410 ();
     180    convert_411 ();
     181    convert_412 ();
     182    convert_413 ();
     183    convert_414 ();
     184    convert_415 ();
     185    convert_416 ();
     186    convert_417 ();
     187    convert_418 ();
     188    convert_419 ();
     189    convert_420 ();
     190  
     191    FINISH
     192  }