diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index bfda25db058..20544556679 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2005-03-15 Paolo Carlini + + PR libstdc++/20352 + * include/std/std_complex.h (pow(const complex<_Tp>&, + const _Tp&)): On non-c99 platforms, don't try to compute + log of complex zero. + 2005-03-10 Ben Elliston * testsuite/22_locale/locale/cons/12658_thread-1.cc: Don't XFAIL diff --git a/libstdc++-v3/include/std/std_complex.h b/libstdc++-v3/include/std/std_complex.h index 694acdc41c9..6c1e0033730 100644 --- a/libstdc++-v3/include/std/std_complex.h +++ b/libstdc++-v3/include/std/std_complex.h @@ -944,6 +944,10 @@ namespace std complex<_Tp> pow(const complex<_Tp>& __x, const _Tp& __y) { +#ifndef _GLIBCXX_USE_C99_COMPLEX + if (__x == _Tp()) + return _Tp(); +#endif if (__x.imag() == _Tp() && __x.real() > _Tp()) return pow(__x.real(), __y);