about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-08-23 15:41:34 +0000
committerbors <bors@rust-lang.org>2015-08-23 15:41:34 +0000
commitc69c29bb530968e35069c53a573c80299ccc8ac8 (patch)
tree69a800ac408993f3c13c9088aaf68453f18e6c3b /src/libstd
parent568b13e26cef2e65660508ed7062830b5ee9aa88 (diff)
parent5e9008dfb7be19a51855009f67b57738c7dea5d2 (diff)
downloadrust-c69c29bb530968e35069c53a573c80299ccc8ac8.tar.gz
rust-c69c29bb530968e35069c53a573c80299ccc8ac8.zip
Auto merge of #27948 - wthrowe:f64-sqrt, r=alexcrichton
This fixes a reappearance of bug #9987 introduced in
1ddee8070d3cb83609b1f71c29e3deda3d30fd51, which caused
f64::tests::test_sqrt_domain to fail (at least on some systems).
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/num/f64.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libstd/num/f64.rs b/src/libstd/num/f64.rs
index 14c540e819e..252a941d86c 100644
--- a/src/libstd/num/f64.rs
+++ b/src/libstd/num/f64.rs
@@ -454,7 +454,11 @@ impl f64 {
     #[stable(feature = "rust1", since = "1.0.0")]
     #[inline]
     pub fn sqrt(self) -> f64 {
-        unsafe { intrinsics::sqrtf64(self) }
+        if self < 0.0 {
+            NAN
+        } else {
+            unsafe { intrinsics::sqrtf64(self) }
+        }
     }
 
     /// Returns `e^(self)`, (the exponential function).