Bug 20094 – POSIX: Wrong substitution for templates with argument in same namespace
Status
RESOLVED
Resolution
FIXED
Severity
regression
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
Other
Creation time
2019-08-01T04:42:36Z
Last change time
2019-08-01T10:05:38Z
Assigned to
No Owner
Creator
Mathias LANG
Comments
Comment #0 by pro.mathias.lang — 2019-08-01T04:42:36Z
```
extern(C++, "xdr")
{
struct xvector (T) {}
alias Value = xvector!(ubyte);
}
extern(C++) void test200XX(xvector!(Value)* v);
static assert(test200XX.mangleof == `_Z9test200XXPN3xdr7xvectorIS0_IhEEE`);
```
This fails. Mangling difference:
Expected: _Z9test200XXPN3xdr7xvectorIS0_IhEEE
Actual: _Z9test200XXPN3xdr7xvectorIS_IhEEE
Notice that `S_` (the first element) is used, instead of `S0_` (the second).
So it seems like one element is not properly added to the array of elements.
Will work on a fix. Most likely introduced by some large refactoring in 2.087.
Comment #1 by pro.mathias.lang — 2019-08-01T10:05:38Z