The following test case:
----
import core.stdc.stdlib : alloca;
class A { }
void b()
{
scope a = new A;
int l;
alloca(l);
goto L1;
L1:
;
}
----
Causes dmd to ICE with the following error:
Internal error: eh.c 49
Slight changes to the test case cause the error to go away. Looking at dmd/eh.c:
----
// BUG: alloca() changes the stack size, which is not reflected
// in the fixed eh tables.
assert(!usedalloca);
----
So it seems I've triggered one of these cases.
Comment #1 by robert — 2010-04-02T20:49:17Z
I should note that this is blocking a linux port of ddmd.
Comment #2 by clugdbug — 2010-04-02T22:35:29Z
See also bug 3753, which also triggers the same ICE.
Comment #3 by clugdbug — 2010-05-18T00:18:41Z
Test case moved to bug 3753, which is clearly the same bug.
*** This issue has been marked as a duplicate of issue 3753 ***
The test case causes ICE on my x86_64 Arch Linux machine:
Internal error: eh.c 55
shell returned 1
Comment #6 by braddr — 2012-07-22T20:00:50Z
Re-marking as a duplicate. If you have further comments, please put them in the other bug report.
*** This issue has been marked as a duplicate of issue 3753 ***