http://d.puremagic.com/issues/show_bug.cgi?id=2665
--- Comment #4 from Don <clugd...@yahoo.com.au> 2009-08-26 00:56:09 PDT --- (In reply to comment #3) > "const(struct)" is the common component for the issues related to ICE(cod4.c) > 35#. > Here is a list of problematic code: > In the function "cdeq" which generates code for an assignment > > sz = tysize[tyml]; > assert((int)sz > 0); <- failed this assertion. > > where tyml is a type of lvalue, sz represents # of bytes to transfer. > > This issue is apparently due to bypass of type-size{tysize} registration for > const(struct), besides registration for struct itself is done. A variation of that test case is interesting: struct A {} struct B { const A a; } void f() { //A a; // ---- if you uncomment this, it doesn't ICE! B b = B(A()); } Comparing the intermediate code using elem_print(e); shows that there's a difference between the two cases by the start of codelem(). But there's no difference in the code generated by DeclarationExp::toElem() in e2ir.c. Somewhere between the two, an optimisation/rewriting step is performed in the correct case, but not in the ICE case. I haven't yet worked out where it happens. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------