-
-
Notifications
You must be signed in to change notification settings - Fork 610
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 16652 - [Reg 2.071] returned rvalue destroyed too early #9081
Conversation
|
Thanks for your pull request, @WalterBright! Bugzilla references
|
src/dmd/inline.d
Outdated
| * m = module to scan | ||
| */ | ||
| public void inlineScanModule(Module m) | ||
| { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unrelated.
7c8cb19 to
dc459ce
Compare
|
Hmm. What's different about the circleci machines from the Linux ones that are passing? |
|
|
|
|
|
Guess it's time to start a binary bisect of sdtor.d. |
0750b3c to
80516e2
Compare
80516e2 to
535e8a4
Compare
|
Hah, fixing this exposed another RAII bug, which I'm glad to fix. |
This is an ugly bug that makes RAII unreliable.
The fix is to inline functions as expressions, not statements, when the arguments to the function generate temporaries that need destruction. The destruction has to happen after the function body executes, and the code generator handles that nicely when they are expressions.