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