Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2011-07-13 11:18:54 +0400
committerCorinna Vinschen <corinna@vinschen.de>2011-07-13 11:18:54 +0400
commit1d15e018c78614860322e074b8f9ff24d829637f (patch)
tree2e136bed38f17ffa3ac27f830acb86810744e27e /newlib/libm
parente021e18968dae2f5ea0334b2a55a1ca77d5c426e (diff)
* libm/complex/cacos.c: Use temporaries and correct sequencing
error in previous reordering change.
Diffstat (limited to 'newlib/libm')
-rw-r--r--newlib/libm/complex/cacos.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/newlib/libm/complex/cacos.c b/newlib/libm/complex/cacos.c
index 3196d970f..86e119842 100644
--- a/newlib/libm/complex/cacos.c
+++ b/newlib/libm/complex/cacos.c
@@ -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;
}