http://d.puremagic.com/issues/show_bug.cgi?id=5469


Andrej Mitrovic <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]


--- Comment #6 from Andrej Mitrovic <[email protected]> 2013-02-09 
13:08:17 PST ---
DMD 2.062 git-head now crashes without giving any errors.

The cause of the crash:

void markAsNeedingClosure(Dsymbol *f, FuncDeclaration *outerFunc)
{
    int x = 0;
    for (Dsymbol *sx = f; sx != outerFunc; sx = sx->parent)
    {
        FuncDeclaration *fy = sx->isFuncDeclaration();
        if (fy && fy->closureVars.dim)
        {
            /* fy needs a closure if it has closureVars[],
             * because the frame pointer in the closure will be accessed.
             */
            fy->requiresClosure = true;
        }
    }
}

'sx' is never checked if it's null, the for loop might have to be:

    for (Dsymbol *sx = f; sx /* <- added */ && sx != outerFunc; sx =
sx->parent)

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

Reply via email to