------- Comment #13 from fxcoudert at gcc dot gnu dot org 2008-02-21 14:12
-------
Still there with on trunk (4.4) and MacOS 10.5.2:
$ cat s.c
int main (void)
{
long double x;
double y;
x = -0.24; y = x;
__builtin_printf ("%g %g %g\n", (float) __builtin_asinl(x),
(float) __builtin_asin(y),
(float) (__builtin_asinl(x) - __builtin_asin(y)));
}
$ ./bin/gcc s.c && ./a.out
-0.242366 -0.242366 0.5
asin() and asinl() values are very close, but their difference is output as
0.5. Adding a simple #include <math.h> on top of this makes it pass:
$ cat s2.c
#include <math.h>
int main (void)
{
long double x;
double y;
x = -0.24; y = x;
__builtin_printf ("%g %g %g\n", (float) __builtin_asinl(x),
(float) __builtin_asin(y),
(float) (__builtin_asinl(x) - __builtin_asin(y)));
}
$ ./bin/gcc s2.c && ./a.out
-0.242366 -0.242366 -8.82009e-18
--
fxcoudert at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Known to fail| |4.2.0 4.3.0 4.4.0
Last reconfirmed|2007-01-14 22:24:04 |2008-02-21 14:12:02
date| |
Version|4.2.0 |4.4.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25477