Uh oh!
There was an error while loading. Please reload this page.
[release/8.0-staging] Call the Copy Constructor for stack arguments in C++/CLI on x86 - #100221
Conversation
…86 (dotnet#100050) * Add repro test case * Directly load the argument address using ldarga to avoid making a copy * Reimplement the "Copy Constructor Cookie" logic in a more modern and maintainable style to get the test passing again * Narrow support to Windows only --------- Co-authored-by: Aaron R Robinson <arobins@microsoft.com>
jkotas
left a comment
There was a problem hiding this comment.
I would avoid the additional cleanup in the servicing backport.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
AaronRobinsonMSFT
commented
Mar 25, 2024
Sounds good. I wasn't sure how much effort we wanted to narrow the changes. I just tried applying them without a local build. If there is any fallout, I will look again tomorrow. |
jeffschwMSFT
left a comment
There was a problem hiding this comment.
approved. we will take for consideration in 8.0.x
This is a port of #100050 to .NET 8.
/cc @jeffschwMSFT@agocke@jkotas
Customer Impact
See user reported issue #100033.
The workaround is to disable debug iterators or change the legacy code to avoid the problematic pattern. Both of these are unacceptable long-term in-production fixes.
Regression
Regression introduced from .NET Framework. Support was added in .NET Core 3.1 and included the regression - dotnet/coreclr#22805.
Testing
A test was added that validates the issue in a C++/CLI scenario.
Risk
Low