http://d.puremagic.com/issues/show_bug.cgi?id=4380
yebblies <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #2 from yebblies <[email protected]> 2013-08-18 14:02:45 EST --- In cg87, line 1661 (load87) it has this code: if ((ty == TYldouble || ty == TYildouble) && op != -1 && e->Eoper != OPd_ld) goto Ldefault; op is 0 here (OPvar), and ty == TYldouble, so all the normal var cse checking is skipped. Down at 1887, we have #if 1 /* Do this instead of codelem() to avoid the freenode(e). We also lose CSE capability */ if (e->Eoper == OPconst) { c = load87(e, 0, &retregs, NULL, -1); } else c = (*cdxxx[e->Eoper])(e,&retregs); #else c = codelem(e,&retregs,FALSE); #endif So it looks like this was intentional to avoid some kind of compiler internal bug. Removing both conditions results in the correct code, but who knows what else it breaks. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
