summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2020-04-10 09:43:22 -0700
committerKeith Randall <khr@golang.org>2020-04-10 19:32:41 +0000
commit83e288f3dbfdc83e4a016c60d54f928f69608d9a (patch)
treea52c313cb730d20837e523bce16d56eddf9f8c32 /test
parent37470c06644ec916821ec82ed84abc2f0d0b876c (diff)
downloadgo-git-83e288f3dbfdc83e4a016c60d54f928f69608d9a.tar.gz
cmd/compile: prevent constant folding of +/- when result is NaN
Missed as part of CL 221790. It isn't just * and / that can make NaNs. Update #36400 Fixes #38359 Change-Id: I3fa562f772fe03b510793a6dc0cf6189c0c3e652 Reviewed-on: https://go-review.googlesource.com/c/go/+/227860 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Alberto Donizetti <alb.donizetti@gmail.com> Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/fixedbugs/issue38359.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/fixedbugs/issue38359.go b/test/fixedbugs/issue38359.go
new file mode 100644
index 0000000000..a7550c7b2c
--- /dev/null
+++ b/test/fixedbugs/issue38359.go
@@ -0,0 +1,19 @@
+// compile
+
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Make sure NaN-NaN compiles correctly.
+
+package p
+
+func f() {
+ var st struct {
+ f float64
+ _, _ string
+ }
+
+ f := 1e308
+ st.f = 2*f - 2*f
+}