--- Comment #2 from David Simcha <> 2010-01-30 06:48:29 PST ---
import core.stdc.stdlib;

void main(string[] args) {
    try { doNothing(); } catch {}
    void* foo = alloca(args.length);

void doNothing() {}

I've had some more time to fiddle with this and more insight into what causes
it, so I've managed to get a reduced test case working.  It seems like you need
to do both of the following in the same function:

1.  Use exception handling either explicitly or implicitly.  This can include
try-catch, try-finally, scope(exit), and struct destructors.

2.  Use alloca, but **the number of bytes must not be a compile-time
constant**.  This is what was messing me up before.  If you replace:

void* foo = alloca(args.length);


void* foo = alloca(8);

then this bug will not be triggered.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to