------- 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