-
Notifications
You must be signed in to change notification settings - Fork 18k
runtime: pcdata is -2 and 12 locals stack map entries error on nil pointer [1.15 backport] #40742
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
Comments
@randall77 , how do you feel about backporting this given the relatively high complexity of the CL? Is there a simpler fix that might be safer to backport? |
I don't think there's really anything simpler. I could revert a bunch of the code deletion, but since it isn't called anyway (and is buggy regardless) I'm not sure that would help. The actual code addition is small. |
Change https://golang.org/cl/248621 mentions this issue: |
@dmitshur Why did this issue's fix not go out with 1.15.2? It looks like it didn't make it to CherryPickApproved, but why didn't it get to that state? |
@randall77 For a backport issue to get to CherryPickApproved state, someone on the release team needs to approve it. We've discussed this issue in past release meetings but a decision hasn't been made yet (though we are quite close by now). If there is a backport issue that you believe is critical and a minor release should not be made without that backport issue being considered (and either approved, or we find agreement not to block on it), the release-blocker label should be used to indicate that. Also please see what I wrote here about the timing of backport issues and minor releases. |
Ok, just wanted to make sure it wasn't missed. |
Approved. This is a serious issue with no workaround. As @dmitshur said, sorry for the delay. |
Closed by merging 0893e6a to release-branch.go1.15. |
…r deferreturn Taking the live variable set from the last return point is problematic. See #40629 for details, but there may not be a return point, or it may be before the final defer. Additionally, keeping track of the last call as a *Value doesn't quite work. If it is dead-code eliminated, the storage for the Value is reused for some other random instruction. Its live variable information, if it is available at all, is wrong. Instead, just mark all the open-defer argument slots as live throughout the function. (They are already zero-initialized.) Fixes #40742 Change-Id: Ie456c7db3082d0de57eaa5234a0f32525a1cce13 Reviewed-on: https://go-review.googlesource.com/c/go/+/247522 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dan Scales <danscales@google.com> (cherry picked from commit 32a84c9) Reviewed-on: https://go-review.googlesource.com/c/go/+/248621 Trust: Dmitri Shuralyov <dmitshur@golang.org>
…r deferreturn Taking the live variable set from the last return point is problematic. See golang#40629 for details, but there may not be a return point, or it may be before the final defer. Additionally, keeping track of the last call as a *Value doesn't quite work. If it is dead-code eliminated, the storage for the Value is reused for some other random instruction. Its live variable information, if it is available at all, is wrong. Instead, just mark all the open-defer argument slots as live throughout the function. (They are already zero-initialized.) Fixes golang#40742 Change-Id: Ie456c7db3082d0de57eaa5234a0f32525a1cce13 Reviewed-on: https://go-review.googlesource.com/c/go/+/247522 Run-TryBot: Keith Randall <khr@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Dan Scales <danscales@google.com> (cherry picked from commit 32a84c9) Reviewed-on: https://go-review.googlesource.com/c/go/+/248621 Trust: Dmitri Shuralyov <dmitshur@golang.org>
@randall77 requested issue #40629 to be considered for backport to the next 1.15 minor release.
The text was updated successfully, but these errors were encountered: