-
-
Notifications
You must be signed in to change notification settings - Fork 609
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 Issue 14708 - destructor for temporary not called during stack un… #11676
Conversation
|
Thanks for your pull request, @WalterBright! Bugzilla references
Testing this PR locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub run digger -- build "master + dmd#11676" |
|
Looks like it ain't working on Win64. |
|
So, why does the autotester dmd build of Win64 work, but the Azure dmd builds fail? The object files generated by each build of dmd should be identical. Can someone email one of the failing Azure dmd builds, so I can compare its output? |
|
Here's what the various builds are: https://issues.dlang.org/show_bug.cgi?id=21133 |
Because we stopped testing on auto-tester and stubbed the output for the windows machines until we get a full replication of all other builds.
Did it pass locally on your machine? |
|
This highlights an asymmetry that has been introduced between constructor and destructor calls. Now temporaries have their destructors called but they are never constructed to begin with. This is a disaster for RAII. |
|
When has the compiler changed happened that made this work? |
No. But at least now I know that Win64 is the only platform where it fails. Kenji's assessment of the cause is likely correct. I have my work cut out for me on this one. |
0ac4796 to
53a0607
Compare
|
Why should everything else pass but which is a linux build yet this change is specific to win64? |
53a0607 to
792bb41
Compare
792bb41 to
206fa12
Compare
…winding
This is working for me, so to be sure this PR adds the test case for it.