[Issue 3681] ICE(go.c): when function takes too long to optimize, only with -O.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Mon Jan 11 21:10:39 PST 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3681
Don <clugdbug at yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|ICE(go.c): Multiple |ICE(go.c): when function
|assignments inside a |takes too long to optimize,
|function, only with -O. |only with -O.
--- Comment #3 from Don <clugdbug at yahoo.com.au> 2010-01-11 21:10:35 PST ---
The problem is simply that the optimiser needs too much time. The optimiser
loops for a maximum of 200 times, but to optimize this example requires 290
loops.
On the line it's faulting on:
- assert(++iter < 200);
+ assert(++iter < 290);
However, there'll always be _some_ example where this happens. So a different
approach is required. Maybe after 200 check that the number of elements is
still decreasing on each pass through the loop; if it is, then just silently
exit the loop without ICEing.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list