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

     1  main ()
     2  {
     3    union
     4      {
     5        double d;
     6        unsigned short i[sizeof (double) / sizeof (short)];
     7      } u;
     8    int a = 0;
     9    int b = -5;
    10    int j;
    11  
    12    u.d = (double) a / b;
    13  
    14    /* Look for the right pattern, but be sloppy since
    15       we don't know the byte order.  */
    16    for (j = 0; j < sizeof (double) / sizeof (short); j++)
    17      {
    18        if (u.i[j] == 0x8000)
    19  	exit (0);
    20      }
    21    abort ();
    22  }