[dmd-internals] [D-Programming-Language/dmd] 10fc5c: fix Issue 14606 - Bad code with -inline and struct...

GitHub via dmd-internals dmd-internals at puremagic.com
Sat May 30 17:04:01 PDT 2015


  Branch: refs/heads/master
  Home:   https://github.com/D-Programming-Language/dmd
  Commit: 10fc5c4227911d4abf4727a283e56afa0aedd783
      https://github.com/D-Programming-Language/dmd/commit/10fc5c4227911d4abf4727a283e56afa0aedd783
  Author: k-hara <k.hara.pg at gmail.com>
  Date:   2015-05-26 (Tue, 26 May 2015)

  Changed paths:
    M src/e2ir.c
    M src/expression.c
    M test/runnable/inline.d

  Log Message:
  -----------
  fix Issue 14606 - Bad code with -inline and structs

The wrong-code had caused by the combination of special memset expression `(struct = 0)` and inlining field variable initialization with NRVO. The extended inlining had introduced ConstructExp(ref_var, 0), but it was wrongly handled as reference initialization in AssignExp::toElem().

To fix that, use `BlitExp` for the memset expression always, and avoid confusion with the ref initialization.


  Commit: 58047b08977cc82f09238e8ac6300dd5158a7acb
      https://github.com/D-Programming-Language/dmd/commit/58047b08977cc82f09238e8ac6300dd5158a7acb
  Author: Walter Bright <walter at walterbright.com>
  Date:   2015-05-30 (Sat, 30 May 2015)

  Changed paths:
    M src/e2ir.c
    M src/expression.c
    M test/runnable/inline.d

  Log Message:
  -----------
  Merge pull request #4683 from 9rnsr/fix14606

 [REG2.067.0] Issue 14606 - Bad code with -inline and structs


Compare: https://github.com/D-Programming-Language/dmd/compare/7dd1d175f8cd...58047b08977c


More information about the dmd-internals mailing list