modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/ieee/mzero3.c (about) 1 /* Copyright (C) 2002 Free Software Foundation. 2 by Hans-Peter Nilsson <hp@bitrange.com>, derived from mzero2.c 3 4 In the MMIX port, negdf2 was bogusly expanding -x into 0 - x. */ 5 6 double nzerod = -0.0; 7 float nzerof = -0.0; 8 double zerod = 0.0; 9 float zerof = 0.0; 10 11 void expectd (double, double); 12 void expectf (float, float); 13 double negd (double); 14 float negf (float); 15 16 main () 17 { 18 expectd (negd (zerod), nzerod); 19 expectf (negf (zerof), nzerof); 20 expectd (negd (nzerod), zerod); 21 expectf (negf (nzerof), zerof); 22 exit (0); 23 } 24 25 void 26 expectd (double value, double expected) 27 { 28 if (value != expected 29 || memcmp ((void *)&value, (void *) &expected, sizeof (double)) != 0) 30 abort (); 31 } 32 33 void 34 expectf (float value, float expected) 35 { 36 if (value != expected 37 || memcmp ((void *)&value, (void *) &expected, sizeof (float)) != 0) 38 abort (); 39 } 40 41 double 42 negd (double v) 43 { 44 return -v; 45 } 46 47 float 48 negf (float v) 49 { 50 return -v; 51 }