From d0cad9fef03ed3cac4b33cfdaa0a33cacb1a8af4 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 13 May 2015 14:32:31 +0100 Subject: [PATCH] * include/std/complex (polar): Check for negative rho (LWG 2459). From-SVN: r223159 --- libstdc++-v3/ChangeLog | 2 ++ libstdc++-v3/include/std/complex | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a22a56524f8..af4d5be54c6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,7 @@ 2015-05-13 Jonathan Wakely + * include/std/complex (polar): Check for negative rho (LWG 2459). + * include/experimental/tuple (apply): Handle pointers to member (LWG 2418). * include/std/functional (_Mem_fn_base): Make constructors constexpr. diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex index 585683c6f93..f2a6cf93487 100644 --- a/libstdc++-v3/include/std/complex +++ b/libstdc++-v3/include/std/complex @@ -667,7 +667,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template inline complex<_Tp> polar(const _Tp& __rho, const _Tp& __theta) - { return complex<_Tp>(__rho * cos(__theta), __rho * sin(__theta)); } + { + _GLIBCXX_DEBUG_ASSERT( __rho >= 0 ); + return complex<_Tp>(__rho * cos(__theta), __rho * sin(__theta)); + } template inline complex<_Tp> -- 2.30.2