view tests/mini/bug199_ctfestructinit.d @ 978:6a32d2e18175

Fix a latent bug in the asm code. I think that technically, using "*m0" instead of "*0" allows LLVM to pick between using the same memory as output 0 and using a new memory location. (So far I haven't been able to construct a testcase that actually breaks because of this, though)
author Frits van Bommel <fvbommel wxs.nl>
date Wed, 18 Feb 2009 03:38:12 +0100
parents 29c0d1194033
children
line wrap: on
line source

struct Color {
    uint c;

}

struct Vertex {
    double x, y;
    Color c;
    static Vertex opCall(double x, double y, Color c) {
        Vertex ret;
        ret.x = x;
        ret.y = y;
        ret.c = c;
        return ret;
    }
}

void main() {
    Color c = {0xffffffff};

    auto v = Vertex(1, 5, c);

    assert(v.x == 1 && v.y == 5); // passes
    assert(v.c.c == 0xffffffff);  // fails in LDC
}