OSDN Git Service

* libm/complex/cacos.c: Use temporaries and correct sequencing
authorcorinna <corinna>
Wed, 13 Jul 2011 07:18:54 +0000 (07:18 +0000)
committercorinna <corinna>
Wed, 13 Jul 2011 07:18:54 +0000 (07:18 +0000)
error in previous reordering change.

newlib/ChangeLog
newlib/libm/complex/cacos.c

index 2c7ecc7..8a986fa 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-13  Hans-Peter Nilsson <hp@axis.com>
+
+       * libm/complex/cacos.c: Use temporaries and correct sequencing
+       error in previous reordering change.
+
 2011-06-25  Andreas Becker  <becker@se-elektronic.de>
 
        * libc/time/mktime.c (mktime): Lock global timezone info while
index 3196d97..86e1198 100644 (file)
@@ -82,8 +82,18 @@ cacos(double complex z)
 {
        double complex w;
 
+       /* FIXME: The original NetBSD code results in an ICE when trying to
+          build this function on ARM/Thumb using gcc 4.5.1.  For now we use
+          a hopefully temporary workaround. */
+#if 0
        w = casin(z);
-       w = M_PI_2 - creal(w);
-       w -= (cimag(w) * I);
+       w = (M_PI_2 - creal(w)) - cimag(w) * I;
+#else
+       double complex tmp0, tmp1;
+
+       tmp0 = casin(z);
+       tmp1 = M_PI_2 - creal(tmp0);
+       w = tmp1 - (cimag(tmp0) * I);
+#endif
        return w;
 }