diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2011-07-13 07:18:54 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2011-07-13 07:18:54 +0000 |
commit | 1d15e018c78614860322e074b8f9ff24d829637f (patch) | |
tree | 2e136bed38f17ffa3ac27f830acb86810744e27e /newlib/libm/complex | |
parent | e021e18968dae2f5ea0334b2a55a1ca77d5c426e (diff) | |
download | cygnal-1d15e018c78614860322e074b8f9ff24d829637f.tar.gz cygnal-1d15e018c78614860322e074b8f9ff24d829637f.tar.bz2 cygnal-1d15e018c78614860322e074b8f9ff24d829637f.zip |
* libm/complex/cacos.c: Use temporaries and correct sequencing
error in previous reordering change.
Diffstat (limited to 'newlib/libm/complex')
-rw-r--r-- | newlib/libm/complex/cacos.c | 14 |
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; } |