[Issue 1432] Bogus "overlapping initialization" error with structs, unions, and member initializers

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sun Dec 26 22:52:18 UTC 2021


https://issues.dlang.org/show_bug.cgi?id=1432

Iain Buclaw <ibuclaw at gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
                 CC|                            |ibuclaw at gdcproject.org
         Resolution|FIXED                       |---

--- Comment #9 from Iain Buclaw <ibuclaw at gdcproject.org> ---
This issue seems to be closed for the wrong reason.

>From runnable/structlit.d:
---
union U7727A3 { int i;       double d = 2.5; }

union U7727B3 { double d;       int i = 123; }


void test7727()
{
    import core.stdc.math : isnan;

// Blocked by https://issues.dlang.org/show_bug.cgi?id=1432
    { U7727A3 u;                assert(u.d == 2.5); }
    { U7727A3 u = { i: 1024 };  assert(u.i == 1024); }
    { U7727A3 u = { d: 1.225 }; assert(u.d == 1.225); }
  static assert(!__traits(compiles,
    { U7727A3 u = { i: 1024, d: 1.225 }; }
  ));

// Blocked by https://issues.dlang.org/show_bug.cgi?id=1432
    { U7727B3 u;                assert(u.i == 123); }
    { U7727B3 u = { i: 1024 };  assert(u.i == 1024); }
    { U7727B3 u = { d: 1.225 }; assert(u.d == 1.225); }
  static assert(!__traits(compiles,
    { U7727B3 u = { i: 1024, d: 1.225 }; }
  ));
}

--


More information about the Digitalmars-d-bugs mailing list