[Issue 6189] [64bit] optimizer: register content destroyed in function prolog
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue May 22 11:15:58 PDT 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6189
Leandro Lucarella <leandro.lucarella at sociomantic.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |leandro.lucarella at sociomant
| |ic.com
--- Comment #12 from Leandro Lucarella <leandro.lucarella at sociomantic.com> 2012-05-22 11:17:37 PDT ---
(In reply to comment #10)
> My reduction in comment 9 was valid only for D2, this one is valid for D1 as
> well (again compile with -m64 -O):
> ---------------------------
> struct IPoint {
> int x, y;
> }
>
> void bug6189(uint half, IPoint pos, float[4] *pts, uint unused) {
> pos.y += half;
> float xo = pos.x;
> float yo = pos.y;
>
> (*pts)[0] = xo;
> (*pts)[1] = yo;
> (*pts)[2] = xo;
> }
>
> void main()
> {
> auto pos = IPoint(2, 2);
> float[4] pts;
> pts[0] = pts[1] = pts[2] = pts[3] = 0;
> bug6189(0, pos, &pts, 0);
>
> assert(pts[0] == 2);
> }
OK, this one fails too in latest D1 and D2, but interestingly enough, it works
with -O -inline (in both D1 and D2)!
--
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