www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 24599] New: [REG2.103] Wrongly elided TypeInfo emission

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

          Issue ID: 24599
           Summary: [REG2.103] Wrongly elided TypeInfo emission leading to
                    undefined symbols at link-time
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: regression
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: kinke gmx.net

This dustmited testcase regressed with v2.103, failing to link due to an
undefined TypeInfo (`_D24TypeInfo_xS3mod8Variable6__initZ`), introduced by
https://github.com/dlang/dmd/pull/14844:

```
module mod;

struct Variable
{
    size_t toHash() const { return 0; }
}

enum hasInoutConstruction(T) = __traits(compiles, { struct S { T a; } });

struct Algebraic(T)
{
    static if (hasInoutConstruction!T)
    {
    }
}

Algebraic!Variable foo();

struct S
{
    Variable[] symbols;
}

void main() {}
```

--
Jun 11