Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile: for range loop reading past slice end [1.14 backport] #40501

Closed
gopherbot opened this issue Jul 30, 2020 · 4 comments
Closed

cmd/compile: for range loop reading past slice end [1.14 backport] #40501

gopherbot opened this issue Jul 30, 2020 · 4 comments

Comments

@gopherbot
Copy link

@gopherbot gopherbot commented Jul 30, 2020

@randall77 requested issue #40367 to be considered for backport to the next 1.14 minor release.

@gopherbot, please open backport issues for 1.14 and 1.13.

@randall77
Copy link
Contributor

@randall77 randall77 commented Jul 30, 2020

This is a rare but serious miscompilation, where loop end conditions aren't respected.

@gopherbot
Copy link
Author

@gopherbot gopherbot commented Jul 30, 2020

Change https://golang.org/cl/245958 mentions this issue: [release-branch.go1.14] cmd/compile: don't addLocalInductiveFacts if there is no direct edge from if block to phi block

@cagedmantis
Copy link
Contributor

@cagedmantis cagedmantis commented Jul 30, 2020

This has been approved since it is a serious issue without any known workarounds.

gopherbot pushed a commit that referenced this issue Aug 3, 2020
…there is no direct edge from if block to phi block

Currently in addLocalInductiveFacts, we only check whether
direct edge from if block to phi block exists. If not, the
following logic will treat the phi block as the first successor,
which is wrong.

This patch makes prove pass more conservative, so we disable
some cases in test/prove.go. We will do some optimization in
the following CL and enable these cases then.

Fixes #40501.


Change-Id: I27cf0248f3a82312a6f7dabe11c79a1a34cf5412
Reviewed-on: https://go-review.googlesource.com/c/go/+/244579
Reviewed-by: Zach Jones <zachj1@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-on: https://go-review.googlesource.com/c/go/+/245958
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
@gopherbot
Copy link
Author

@gopherbot gopherbot commented Aug 3, 2020

Closed by merging 739b9d5 to release-branch.go1.14.

@gopherbot gopherbot closed this Aug 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.