[Issue 6189] [64bit] optimizer: register content destroyed in function prolog

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon May 21 07:07:54 PDT 2012


http://d.puremagic.com/issues/show_bug.cgi?id=6189



--- Comment #10 from Don <clugdbug at yahoo.com.au> 2012-05-21 07:09:29 PDT ---
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);
}

-- 
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