Internal error: e2ir.c 736 dmd0.147

BCS BCS_member at pathlink.com
Sun Feb 19 15:54:24 PST 2006


In article <e42jc3-6h7.ln1 at birke.kuehne.cn>, Thomas Kuehne says...
>
>> I ask because case B and D should compile (or fail gracefully) and from what I 
>> can tell they are marked as "shouldn't compile".
>
>>> http://dstress.kuehne.cn/nocompile/t/template_29_B.d
>>> http://dstress.kuehne.cn/nocompile/t/template_29_D.d
>
>For clarification I've replaced "uint" with "size_t".
>
>I'm not sure how they could succeed to compile without memory exhaustion and
>thus fail gracefully at compile time(hence: nocompile).
>
>Granted, an advanced compiler might be able to compile the given tests
>with 2 instead of size_t.max template instance - not sure how to fool
>that kind of compiler.
>
>Thomas
>
My point is that they are both (in theory) legal code and thus should nether
crash DMD or generate a syntax error. In reality, nether can be expected to
actually compile, but DMD should give some sort of rational error message like
"Internal template recursion limit exceeded: Quitting".





More information about the Digitalmars-d-bugs mailing list