-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
ilasm doesn't preserve "where T : struct", instead produces "where T : ValueType" #45183
Comments
Dotnet-GitSync-Bot
added
area-ILTools-coreclr
untriaged
New issue has not been triaged by the area owner
labels
Nov 25, 2020
I will take a look |
It is helpful to have a complete repro that is ready to try. |
Here's a self-contained repro to run on |
I have a fix for this now |
Merged
I added a patch for source-build and tested it locally. It fixes the issue. Patch included in source-build here: dotnet/source-build#1933 |
Merged
JulieLeeMSFT
removed
the
untriaged
New issue has not been triaged by the area owner
label
Dec 1, 2020
Open
2 tasks
ghost
locked as resolved and limited conversation to collaborators
Dec 31, 2020
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Description
I'm observing in source-build that our 5.0.0
ilasm
has a regression when given this IL method signature:Viewing the result in ILSpy shows me these IL results. Red is "bad", with 5.0.0
ilasm
. Green is "good", with old 3.1ilasm
.This issue looks to me like it's blocking the source-build 5.0.0 GA release.
The FSharp compiler seems to rely on the signature being correct, or else the build fails. With the C# decompilation result, it's easier to see why (for me 😄):
More details and more examples at dotnet/source-build#1920 (comment).
Full original IL file that may be able to repro: https://raw.githubusercontent.com/dotnet/source-build-reference-packages/ddfd9f5918bdaefc0d02db8ea1ae8a8b1ff11b23/src/targetPacks/ILsrc/netstandard.library/2.0.3/build/netstandard2.0/ref/netstandard.il (signature at line 28420)
(Edited to add in context:) Self-contained repro to run on
linux-x64
: https://github.com/dagood/repro/tree/ilasm-struct-vs-valuetype@JulieLeeMSFT @briansull can you help with this?
/cc @dleeapho @dseefeld
Regression?
Seems like a regression from 3.1.0-ish
ilasm
to a 5.0.0ilasm
. This happened when we upgraded from 3.1.0 to 5.0.0 in dotnet/source-build-reference-packages: dotnet/source-build-reference-packages@fe6afa2...c52443b.The 5.0.0
ilasm
includes the recent patch to fix a different regression: #44850.The text was updated successfully, but these errors were encountered: