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: open-coded defers are broken on riscv64 #36786
Comments
Change https://golang.org/cl/216517 mentions this issue: |
Open-coded defers are currently broken on riscv64 - disable them for the time being. All of the standard package tests now pass on linux/riscv64. Updates issue #27532 and #36786 Change-Id: I20fc25ce91dfad48be32409ba5c64ca9a6acef1d Reviewed-on: https://go-review.googlesource.com/c/go/+/216517 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Dan Scales <danscales@google.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Change https://golang.org/cl/216777 mentions this issue: |
This test expects that open-coded defers are enabled, which is not currently the case on riscv64. Updates issue #27532 and #36786. Change-Id: I94bb558c5b0734b4cfe5ae12873be81026009bcf Reviewed-on: https://go-review.googlesource.com/c/go/+/216777 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
Change https://golang.org/cl/216797 mentions this issue: |
Change https://golang.org/cl/220920 mentions this issue: |
Open-coded defers were fixed and re-enabled on riscv64, however this test was inadvertantly left disabled. Updates #36786 Change-Id: I128fc84baa3d51f50d173e19e52051dc4d9a07c3 Reviewed-on: https://go-review.googlesource.com/c/go/+/220920 Run-TryBot: Ian Lance Taylor <iant@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Open-coded defers are currently broken on riscv64 - this is noticeable with a failure of runtime/TestRecursivePanic2 and hangs/missing defer execution in net/http and time/TestConcurrentTimerReset tests.
The following code (from the TestRecursivePanic2 test):
Results in:
This appears to be a result of an incorrect funcspdelta() value being applied during
gentraceback
ofmain.blah
. It is worth noting that the actual LR address appears to be 32 bytes further down (i.e. SP should be pointing at 0x202807bf00 rather than 0x202807bf20). This may some how be related to the fact that an epilogue does not exist formain.blah
, since it is callingruntime.gopanic
and will obviously be terminal.The text was updated successfully, but these errors were encountered: