-
Notifications
You must be signed in to change notification settings - Fork 18k
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: internal compiler error: Op...LECall and OpDereference have mismatched mem #49282
Comments
Looks like there is a vardef/varlive pair that is masking the fact that the two memory args are the same. The expand_calls pass doesn't like that for some reason. @drchase can you look at this? I don't think it is directly related to generics. |
Seems right, look at the SSA:
The mismatch between Can we add this code right after L1084 to find the correct
|
I found the cause of the problem: Before the pass of insert phi, the mem chain of the StaticLECall args in the first block is broken by the vardef/varlive pair inserted by openDeferRecord, trying to fix it. |
Change https://golang.org/cl/361410 mentions this issue: |
FYI, a no-generics reproducer:
|
which also fails in 1.16 |
Thanks for the the non-generic reproducer, i will use your code to replace the test. |
@gopherbot Please open backport to 1.16 and 1.17 |
Backport issue(s) opened: #49412 (for 1.16), #49413 (for 1.17). Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://golang.org/wiki/MinorReleases. |
Tentatively labeling as a release blocker since it's a compiler crasher on a valid program with typeparameters.
cc @randall77 @danscales
The text was updated successfully, but these errors were encountered: