aboutsummaryrefslogtreecommitdiff
path: root/test/fixedbugs
diff options
context:
space:
mode:
authorYoulin Feng <fengyoulin@live.com>2024-11-05 17:21:57 +0800
committerGopher Robot <gobot@golang.org>2024-11-12 21:08:08 +0000
commit1f8fa4941f632575468498bfac48fc1cbbf1a54f (patch)
tree5cb0148c21ec9448d0c3c1267f1a92829f03b9c1 /test/fixedbugs
parent3efbc30f3d6a35cb5b0fc29d8bb3f43d59304771 (diff)
downloadgo-1f8fa4941f632575468498bfac48fc1cbbf1a54f.tar.xz
runtime: fix iterator returns map entries after clear (pre-swissmap)
Fixes #70189 Fixes #59411 Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest-noswissmap Change-Id: I4ef7ecd7e996330189309cb2a658cf34bf9e1119 Reviewed-on: https://go-review.googlesource.com/c/go/+/625275 Reviewed-by: Keith Randall <khr@golang.org> Reviewed-by: Keith Randall <khr@google.com> Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Diffstat (limited to 'test/fixedbugs')
-rw-r--r--test/fixedbugs/issue70189.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/fixedbugs/issue70189.go b/test/fixedbugs/issue70189.go
new file mode 100644
index 0000000000..357ac537ad
--- /dev/null
+++ b/test/fixedbugs/issue70189.go
@@ -0,0 +1,38 @@
+// run -goexperiment noswissmap
+
+// Copyright 2024 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.
+
+package main
+
+func nan() float64 {
+ var x, y float64
+ return x / y
+}
+
+func main() {
+ m := map[float64]int{}
+
+ // Make a small map with nan keys
+ for i := 0; i < 8; i++ {
+ m[nan()] = i
+ }
+
+ // Start iterating on it.
+ start := true
+ for _, v := range m {
+ if start {
+ // Add some more elements.
+ for i := 0; i < 10; i++ {
+ m[float64(i)] = i
+ }
+ // Now clear the map.
+ clear(m)
+ start = false
+ } else {
+ // We should never reach here.
+ panic(v)
+ }
+ }
+}