Question of delegate literals and return from

Amaury Pouly amaury.pouly at gmail.com
Sun Feb 1 04:23:08 PST 2009


Jarrett Billingsley Wrote:

Thank you for your answer. I was using D1 so I'm quite lucky with dmd :)

> On Sat, Jan 31, 2009 at 5:36 PM, amaury pouly <amaury.pouly at gmail.com> wrote:
> 
> > My question is the following: is this a bug of GDC/LDC or is this the expected behaviour ? The second solution must always work but I'm unsure about the first one. Indeed, the specification says that a delegate shall not reference a stack parameter which is logical but it says nothing about function arguments.
> 
> In D1, returning nested functions from the function that defined them
> is undefined behavior.  If you're using DMD1 and it's working, you
> just got lucky.  The compilers could detect this better, but more
> generally it's a problem of escape analysis and there will always be
> cases where they get it wrong.
> 
> But in D2, it's legal and will create a closure.  If you're using
> DMD2, that's why it's working.




More information about the Digitalmars-d mailing list