diff options
| author | Youlin Feng <fengyoulin@live.com> | 2024-11-05 17:21:57 +0800 |
|---|---|---|
| committer | Gopher Robot <gobot@golang.org> | 2024-11-12 21:08:08 +0000 |
| commit | 1f8fa4941f632575468498bfac48fc1cbbf1a54f (patch) | |
| tree | 5cb0148c21ec9448d0c3c1267f1a92829f03b9c1 /test/fixedbugs | |
| parent | 3efbc30f3d6a35cb5b0fc29d8bb3f43d59304771 (diff) | |
| download | go-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.go | 38 |
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) + } + } +} |
