[Issue 20094] New: POSIX: Wrong substitution for templates with argument in same namespace
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu Aug 1 04:42:36 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=20094
Issue ID: 20094
Summary: POSIX: Wrong substitution for templates with argument
in same namespace
Product: D
Version: D2
Hardware: All
OS: Other
Status: NEW
Severity: regression
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: pro.mathias.lang at gmail.com
```
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.
--
More information about the Digitalmars-d-bugs
mailing list