1/* Test gcse handling of IEEE 0/-0 rules. */ 2static double zero = 0.0; 3 4int 5negzero_check (double d) 6{ 7 if (d == 0) 8 return !!memcmp ((void *)&zero, (void *)&d, sizeof (double)); 9 return 0; 10} 11 12int 13sub (double d, double e) 14{ 15 if (d == 0.0 && e == 0.0 16 && negzero_check (d) == 0 && negzero_check (e) == 0) 17 return 1; 18 else 19 return 0; 20} 21 22int 23main (void) 24{ 25 double minus_zero = -0.0; 26 if (sub (minus_zero, 0)) 27 abort (); 28 return 0; 29} 30