http://d.puremagic.com/issues/show_bug.cgi?id=6681
Summary: bogus duplicate union initialization or overlapping initialization errors Product: D Version: D1 & D2 Platform: Other OS/Version: Mac OS X Status: NEW Severity: regression Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: fa...@gmx.ch --- Comment #0 from Fawzi Mohamed <fa...@gmx.ch> 2011-09-16 10:42:44 PDT --- In D1 code like this {{{ module t; template MTuple( TList... ) { alias TList MTuple; } struct V{ union { double[2] cell; version(v2) {} else { MTuple!(double,double) tuple; } struct { union { double x; double r; } union { double y; double g; } } } static const V zero={x:0, y:1}; } V a=V.zero; version(v2) { struct Q { union { struct { double x, y; } V xyzw; } const static Q id = { x: 0, y:1 }; } Q b=Q.id; } }}} fails with duplicate union initialization, which is incorrect. This happens both with and without -version=v2 which shows that the error is not just the tuple. Closely related errors are present also in D2, even if one uses constructors: {{{ module t; template MTuple( TList... ) { alias TList MTuple; } struct V{ this(double a,double b){ x=a; y=b; } union { double[2] cell; version(v2) {} else { MTuple!(double,double) tuple; } struct { union { double x; double r; } union { double y; double g; } } } static immutable V zero=V(0,1); } V a=V.zero; version(v2) { struct Q { union { struct { double x, y; } V xyzw; } immutable static Q id =Q(0,1); } Q b=Q.id; } }}} similar errors seem to be very old: http://www.digitalmars.com/d/archives/digitalmars/D/bugs/6271.html and there are related or very similar errors are already present in bugzilla: http://d.puremagic.com/issues/show_bug.cgi?id=4241 which basically uses the same code as me (omg derived vector structs), but just complains about line number, seemingly accepting the error (which is bogus imho. I have also tried to sprinkle around some =void but I just managed to end up with "Error: no initializer for union". http://d.puremagic.com/issues/show_bug.cgi?id=1432 (using initializers in the union) but this one at least with D1 is a regression from 1.067 at least -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------