modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/conv.c (about)

     1  double
     2  u2d (unsigned int u)
     3  {
     4    return u;
     5  }
     6  
     7  double
     8  i2d (signed int i)
     9  {
    10    return i;
    11  }
    12  
    13  unsigned int
    14  d2u (double d)
    15  {
    16    return d;
    17  }
    18  
    19  signed int
    20  d2i (double d)
    21  {
    22    return d;
    23  }
    24  
    25  main ()
    26  {
    27    printf ("%lf, %lf, %lf\n", u2d (~0), u2d (1 << 31), u2d (1));
    28    printf ("%lf, %lf, %lf\n", i2d (~0), i2d (1 << 31), i2d (1));
    29  
    30    printf ("%u, %u, %u\n", d2u (u2d (~0)), d2u (u2d (1 << 31)), d2u (u2d (1)));
    31    printf ("%d, %d, %d\n", d2i (i2d (~0)), d2i (i2d (1 << 31)), d2i (i2d (1)));
    32  }