]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: check for iteration after range func loop exit
authorDavid Chase <drchase@google.com>
Tue, 7 Nov 2023 22:20:35 +0000 (17:20 -0500)
committerDavid Chase <drchase@google.com>
Wed, 15 Nov 2023 20:07:46 +0000 (20:07 +0000)
commitb5e31780b612c1317c9853f9e59df5c1bd0b3552
treed4aeef07ecf100d1f74e0db11bceab57e2f6fe2d
parent6f5aba995fdea76433337d1a8030518bdadfae28
cmd/compile: check for iteration after range func loop exit

When this happens, panic.

This is a revised version of a check that used #next,
where this one instead uses a per-loop #exit flag,
and catches more problematic iterators.

Updates #56413.
Updates #61405.

Change-Id: I6574f754e475bb67b9236b4f6c25979089f9b629
Reviewed-on: https://go-review.googlesource.com/c/go/+/540263
Run-TryBot: David Chase <drchase@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/noder/codes.go
src/cmd/compile/internal/noder/reader.go
src/cmd/compile/internal/noder/writer.go
src/cmd/compile/internal/rangefunc/rangefunc_test.go [new file with mode: 0644]
src/cmd/compile/internal/rangefunc/rewrite.go
src/cmd/compile/internal/syntax/type.go
src/cmd/compile/internal/typecheck/_builtin/runtime.go
src/cmd/compile/internal/typecheck/builtin.go
src/cmd/internal/goobj/builtinlist.go
src/runtime/panic.go