March 19, 2014
https://d.puremagic.com/issues/show_bug.cgi?id=11777


Denis Shelomovskij <verylonglogin.reg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |


--- Comment #10 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2014-03-19 19:31:18 MSK ---
Let's add `assert(fieldinit != enclosing->fieldinit);` in `Scope::pop` before
we `free(fieldinit)`. This code fails the assertion (and `nofree` is `false`):
---
void f(void delegate(int)) { }

class C
{
    int i;
    this() { f((a) {}); }
}
---

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 19, 2014
https://d.puremagic.com/issues/show_bug.cgi?id=11777



--- Comment #11 from Denis Shelomovskij <verylonglogin.reg@gmail.com> 2014-03-19 19:48:50 MSK ---
And again I was incorrect. Failing `enclosing->fieldinit != fieldinit` assertion is just another random victim in case we `free(fieldinit)`. If we don't free, it doesn't happen. So I provided a test-case but has no idea what is going on there.

And do not forget workaround dmd pull 2990 is assumed to be reverted while testing.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 04, 2014
https://d.puremagic.com/issues/show_bug.cgi?id=11777


Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull


--- Comment #12 from Kenji Hara <k.hara.pg@gmail.com> 2014-04-03 22:19:15 PDT ---
(In reply to comment #10)
> Let's add `assert(fieldinit != enclosing->fieldinit);` in `Scope::pop` before
> we `free(fieldinit)`. This code fails the assertion (and `nofree` is `false`):
> ---
> void f(void delegate(int)) { }
> 
> class C
> {
>     int i;
>     this() { f((a) {}); }
> }
> ---

Thanks for your work and shrunken test case! It was much helpful for me.

https://github.com/D-Programming-Language/dmd/pull/3423

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 05, 2014
https://d.puremagic.com/issues/show_bug.cgi?id=11777



--- Comment #13 from github-bugzilla@puremagic.com 2014-04-05 05:20:29 PDT ---
Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/684b84bc3e1635ec8805b9322a440776a50807d0
fix Issue 11777 - [ICE] dmd memory corruption as `Scope::pop` `free`s
`fieldinit` used also in `enclosing`

https://github.com/D-Programming-Language/dmd/commit/fe52711238588d01b996135aff5f49712c5f2756 Merge pull request #3423 from 9rnsr/fix11777

[REG2.065] Issue 11777 - [ICE] dmd memory corruption as `Scope::pop` `free`s `fieldinit` used also in `enclosing`

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
April 06, 2014
https://d.puremagic.com/issues/show_bug.cgi?id=11777


Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED


-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
1 2
Next ›   Last »