modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/ieee/inf-2.c (about)

     1  extern void abort (void);
     2  
     3  void test(double f, double i)
     4  {
     5    if (f == __builtin_inf())
     6      abort ();
     7    if (f == -__builtin_inf())
     8      abort ();
     9    if (i == -__builtin_inf())
    10      abort ();
    11    if (i != __builtin_inf())
    12      abort ();
    13  
    14    if (f >= __builtin_inf())
    15      abort ();
    16    if (f > __builtin_inf())
    17      abort ();
    18    if (i > __builtin_inf())
    19      abort ();
    20    if (f <= -__builtin_inf())
    21      abort ();
    22    if (f < -__builtin_inf())
    23      abort ();
    24  }
    25  
    26  void testf(float f, float i)
    27  {
    28  #ifndef __SPU__
    29    /* The SPU single-precision floating point format does not support Inf.  */
    30  
    31    if (f == __builtin_inff())
    32      abort ();
    33    if (f == -__builtin_inff())
    34      abort ();
    35    if (i == -__builtin_inff())
    36      abort ();
    37    if (i != __builtin_inff())
    38      abort ();
    39  
    40    if (f >= __builtin_inff())
    41      abort ();
    42    if (f > __builtin_inff())
    43      abort ();
    44    if (i > __builtin_inff())
    45      abort ();
    46    if (f <= -__builtin_inff())
    47      abort ();
    48    if (f < -__builtin_inff())
    49      abort ();
    50  #endif
    51  }
    52  
    53  void testl(long double f, long double i)
    54  {
    55    if (f == __builtin_infl())
    56      abort ();
    57    if (f == -__builtin_infl())
    58      abort ();
    59    if (i == -__builtin_infl())
    60      abort ();
    61    if (i != __builtin_infl())
    62      abort ();
    63  
    64    if (f >= __builtin_infl())
    65      abort ();
    66    if (f > __builtin_infl())
    67      abort ();
    68    if (i > __builtin_infl())
    69      abort ();
    70    if (f <= -__builtin_infl())
    71      abort ();
    72    if (f < -__builtin_infl())
    73      abort ();
    74  }
    75  
    76  int main()
    77  {
    78    test (34.0, __builtin_inf());
    79    testf (34.0f, __builtin_inff());
    80    testl (34.0l, __builtin_infl());
    81    return 0;
    82  }
    83