[Issue 15207] [REG2.069.0-b1] Wrong codegen with -inline

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Wed Oct 21 02:50:23 PDT 2015


https://issues.dlang.org/show_bug.cgi?id=15207

--- Comment #3 from github-bugzilla at puremagic.com ---
Commits pushed to stable at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/3224f462eacbcd2d1cab663ea2af1e46d8bfd6fd
fix Issue 15207 - Wrong codegen with -inline

When issue 14944 fixed, the ref variable content initializing form had been
flagged by `MemorySet.refValueInit`.

However, inilining may replace `AssignExp.e1` operand with a `STCref` temporary
variable.
When it happens, the `MemorySet.refValueInit` flag will be ignored in
`AssignExp.toElem` and wrong code had generated.

To avoid the issue, instead flag the case "ref varaible initialization" by
`MemorySet.referenceInit`.
Its meaning will be kept beyond inlining stage, and the bug won't happen.

https://github.com/D-Programming-Language/dmd/commit/77463d7b0503a96d0ea367f5f29df15ed7655cad
Merge pull request #5206 from 9rnsr/fix15207

[REG2.069.0-b1] Issue 15207 - Wrong codegen with -inline

--


More information about the Digitalmars-d-bugs mailing list