X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-ceill.c;h=49e0c6519e708beaa0bf546c24273aefb912bda4;hb=1b22ddf54eb25f38d049c46e4b5d7323b15d8ecf;hp=80ff75ba667eb4c1cbe5bef91ab96464946c8b34;hpb=4eb59b32a2a687c113f3c0dfc166fc2573acb84f;p=gnulib.git diff --git a/tests/test-ceill.c b/tests/test-ceill.c index 80ff75ba6..49e0c6519 100644 --- a/tests/test-ceill.c +++ b/tests/test-ceill.c @@ -20,6 +20,7 @@ #include +#include #include #include @@ -38,9 +39,15 @@ } \ while (0) -/* HP cc on HP-UX 10.20 has a bug with the constant expression -0.0L. - So we use -zero instead. */ -long double zero = 0.0L; +/* On HP-UX 10.20, negating 0.0L does not yield -0.0L. + So we use minus_zero instead. + Note that the expression -LDBL_MIN * LDBL_MIN does not work on other + platforms, such as when cross-compiling to PowerPC on MacOS X 10.5. */ +#if defined __hpux || defined __sgi +long double minus_zero = -LDBL_MIN * LDBL_MIN; +#else +long double minus_zero = -0.0L; +#endif int main () @@ -51,7 +58,7 @@ main () /* Zero. */ ASSERT (ceill (0.0L) == 0.0L); - ASSERT (ceill (-zero) == 0.0L); + ASSERT (ceill (minus_zero) == 0.0L); /* Positive numbers. */ ASSERT (ceill (0.3L) == 1.0L); ASSERT (ceill (0.7L) == 1.0L);