https://issues.dlang.org/show_bug.cgi?id=15205
Issue ID: 15205 Summary: Incorrect struct init via union array Product: D Version: D2 Hardware: x86_64 OS: Windows Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: h1054...@trbvm.com Tested with: D2.068.1 and D2.069.b struct Foo { this( float x_, float y_ ) { // option A //x = x_; //y = y_; // option B v[0] = x_; v[1] = y_; } union { struct { float x = 0; float y = 0; } float[2] v; } } struct Bar { Foo foo = Foo( 1, 2 ); } Bar bar; Bar baz = bar.init; printf( "bar: %f, %f\n", bar.foo.x, bar.foo.y ); printf( "baz: %f, %f\n", baz.foo.x, baz.foo.y ); ------------------------------------------------- prints (with option B): bar: 0.000000, 0.000000 // BUG?? baz: 1.000000, 2.000000 prints (with option A): bar: 1.000000, 2.000000 baz: 1.000000, 2.000000 --