http://d.puremagic.com/issues/show_bug.cgi?id=8525
Summary: optimizer loops infinitely Product: D Version: D2 Platform: All OS/Version: Other Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: d...@dawgfoto.de --- Comment #0 from d...@dawgfoto.de 2012-08-08 19:04:00 PDT --- OpenBSD-only cat > bug.d << CODE class Foo { int[] elements; final int bar() { return elements[0]; } } CODE dmd -c -O bug.d ---- The bug is caused by infinitely performing two associative transformations. - cgelem.c(4444): Replace (a op1 (b op2 c)) with ((a op2 b) op1 c) - cgelem.c(4471): Replace ((a op c1) op c2) with (a op (c2 op c1)) It only happens on OpenBSD because folding 'c2 op c1' fails in evalu8 due to a fenv.h workaround. The proposed fix is to perform the first transformation only if 'b' is not a constant. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------