This doesn't happen if the array literals are initializers.
In large_parser.d the large array literals appeared in the constructor - DMD crashes. The following example uses them as const initializers and it compiles without problems:
http://mainia.de/large_parser2.d
Comment #2 by clugdbug — 2009-04-21T06:28:11Z
Created attachment 332
Reduced test case
Reduced test case. Clearly shows it's caused by the large array literal. On my system, the smallest array literal which caused a stack overflow was 10776 elements. Needs to be inside a function.
void main() {
ubyte[] data = [
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
...
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0];
}
---
Stack overflow.