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

Fix object.GetType dataflow edge case #106909

Merged
merged 3 commits into from
Aug 27, 2024
Merged

Conversation

sbomer
Copy link
Member

@sbomer sbomer commented Aug 23, 2024

Partial fix for one of the cases mentioned in #106886.

I moved some of the tests to ObjectGetTypeDataflow.cs because ObjectGetType.cs is skipped by native AOT. Fixes an issue I ran into while investigating #106215.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-Tools-ILLink .NET linker development as well as trimming analyzers label Aug 23, 2024
Copy link
Contributor

Tagging subscribers to this area: @agocke, @sbomer, @vitek-karas
See info in area-owners.md if you want to be subscribed.

@sbomer
Copy link
Member Author

sbomer commented Aug 27, 2024

/ba-g "timeouts"

@sbomer sbomer merged commit ed21115 into dotnet:main Aug 27, 2024
99 of 113 checks passed
sbomer added a commit that referenced this pull request Aug 28, 2024
The equality check needs to determine whether two TypeProxy instances
represent the same type. The check was incorrect when two different
object instances were allocated to represent the same generic
instantiated type.

ILCompiler doesn't have this problem because it uses a cache to ensure
that the same object instance represents a given instantiated generic
type.

Discovered while investigating
#106215, see more context at
#106215 (comment).

The new testcase also uncovered an issue in the analyzer that was
fixed in #106909.
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
Partial fix for one of the cases mentioned in
dotnet#106886.

This moves some of the tests to ObjectGetTypeDataflow.cs because
ObjectGetType.cs is skipped by native AOT. Fixes an issue discovered
while investigating dotnet#106215.
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 17, 2024
The equality check needs to determine whether two TypeProxy instances
represent the same type. The check was incorrect when two different
object instances were allocated to represent the same generic
instantiated type.

ILCompiler doesn't have this problem because it uses a cache to ensure
that the same object instance represents a given instantiated generic
type.

Discovered while investigating
dotnet#106215, see more context at
dotnet#106215 (comment).

The new testcase also uncovered an issue in the analyzer that was
fixed in dotnet#106909.
@github-actions github-actions bot locked and limited conversation to collaborators Sep 28, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Tools-ILLink .NET linker development as well as trimming analyzers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants